Stepper Touch for Android based on MaterialUp submission

Overview

Stepper-Touch

Twitter API Awesome Kotlin Badge CircleCI

For more updates on this and other open-source projects, follow me on twitter 👉 here


Stepper Touch for Android based on a Material Up showcase designed by Oleg Frolov

In the latest version of the support library (25.3.0) a new class SpringAnimation was made available. I wanted to test this out and not long after that I found Stepper Touch, a concept made in FramerJS, on Material Up. I took this oppertunity to play with SpringAnimations.

Try it yourself:

Gradle

  • Step 1. Add the JitPack repository to your build file
allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}
  • Step 2. Add the dependency (only for androidx projects)
dependencies {
    implementation 'com.github.DanielMartinus:Stepper-Touch:1.0.1'
}

If you haven't migrated your project to AndroidX use:

dependencies {
    implementation 'com.github.DanielMartinus:Stepper-Touch:0.6'
}

More info about it here: #24

Implement

<nl.dionsegijn.steppertouch.StepperTouch
        android:id="@+id/stepperTouch"
        android:layout_width="100dp"
        android:layout_height="40dp" />

Kotlin

val stepperTouch = findViewById<StepperTouch>(R.id.stepperTouch)
stepperTouch.minValue = 0
stepperTouch.minValue = 10
stepperTouch.sideTapEnabled = true
stepperTouch.addStepCallback(object : OnStepCallback {
	override fun onStep(value: Int, positive: Boolean) {
    		Toast.makeText(applicationContext, value.toString(), Toast.LENGTH_SHORT).show()
	}
})

Java

StepperTouch stepperTouch = findViewById(R.id.stepperTouch);
stepperTouch.setMinValue(0);
stepperTouch.setMaxValue(3);
stepperTouch.setSideTapEnabled(true);
stepperTouch.addStepCallback(new OnStepCallback() {
    @Override
    public void onStep(int value, boolean positive) {
        Toast.makeText(getApplicationContext(), value + "", Toast.LENGTH_SHORT).show();
    }
});

You're able to further customize or set initial values with styled attributes:

  1. Add res-auto to your xml layout if you haven't yet
xmlns:app="http://schemas.android.com/apk/res-auto"
  1. After that the following attributes will become available:
app:stepperBackgroundColor=""
app:stepperButtonColor=""
app:stepperActionsColor=""
app:stepperActionsDisabledColor=""
app:stepperTextColor=""
app:stepperTextSize=""
app:app:stepperAllowNegative=""
app:app:stepperAllowPositive=""
Comments
  • Button not visible

    Button not visible

    Hi... I have converted MainActivity.kt file to java file and its working fine in main layout. Its showing me the button in main layout(xml) . But when i am putting it in floating widget file(xml) it does not show me the button. It is only showing me outer border. I tried the commander you have given in the description for colour change of the buttons but it didn't work.

    screenshot_20170427-221532

    bug 
    opened by virajt71 8
  • Crash on androidX

    Crash on androidX

    Hi,

    its throwing below crash while using this library on androidX

    Process: com.rakuten.travel.concierge.debug, PID: 3309 java.lang.NoSuchMethodError: No direct method (Landroid/view/View;Landroidx/dynamicanimation/animation/DynamicAnimation$ViewProperty;F)V in class Landroidx/dynamicanimation/animation/SpringAnimation; or its super classes (declaration of 'androidx.dynamicanimation.animation.SpringAnimation' appears in /data/app/com.rakuten.travel.concierge.debug-KYoF_Boq6_ksiqLqVxy8ow==/base.apk:classes3.dex) at nl.dionsegijn.steppertouch.StepperTouch.onTouchEvent(StepperTouch.kt:151)

    opened by saurabhmdh 5
  • Fix issue #12 (Bug: default value hidden inside fragment)

    Fix issue #12 (Bug: default value hidden inside fragment)

    I Had same problem that mentioned in this issue, and i used @VrasidasP solution and problem solved.

    I replaced this line: newHeight = measuredHeight with this: newHeight = if (measuredHeight == 0) newHeight else measuredHeight.

    opened by nasrabadiAM 5
  • Smaller Stepper Touch

    Smaller Stepper Touch

    I need to set the stepper touch with below size for a full display android:layout_width="130dp" android:layout_height="50dp Is there a way I can make it smaller ? Thanks a lot

    opened by udongeex 4
  • android:supportsRtl=

    android:supportsRtl="false" make error

    when a make supportsRtl="false" this error appear

    Manifest merger failed : Attribute application@supportsRtl value=(false) from AndroidManifest.xml:14:9-36 is also present at [com.github.DanielMartinus:Stepper-Touch:0.6] AndroidManifest.xml:14:9-35 value=(true). Suggestion: add 'tools:replace="android:supportsRtl"' to element at AndroidManifest.xml:9:5-27:19 to override.

    opened by mgrmaxi 3
  • Feature/xml attributes

    Feature/xml attributes

    Hey there,

    I modified your nice little library to support more properties using xml attributes. Would be really awesome if you could think about it as I want to use your library in production (with attributions of course ;D)

    Thx, Markus

    opened by markusressel 3
  • Bump spotless-plugin-gradle from 5.12.4 to 5.14.1

    Bump spotless-plugin-gradle from 5.12.4 to 5.14.1

    Bumps spotless-plugin-gradle from 5.12.4 to 5.14.1.

    Commits
    • fc350d4 Published gradle/5.14.1
    • 72550e7 Published lib/2.15.1
    • 7028493 Improve JsonSimple exception messages (#885)
    • bb80062 Improve JsonSimple exception messages
    • eb8004c Published ext-eclipse-wtp/3.22.0
    • 1644a73 Upgraded to WebTools version 2021-06 / 3.22.0.
    • dc71a67 Published ext-eclipse-cdt/10.3.0
    • d75bb4a Upgraded to CDT version 10.3
    • d75da31 Update eclipse-jdt tool chain.
    • 9d51538 fix: Fix typo in ktlint code block in gradle README (#883)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 1
  • Bump gradle from 4.1.3 to 4.2.2

    Bump gradle from 4.1.3 to 4.2.2

    Bumps gradle from 4.1.3 to 4.2.2.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 1
  • Bump spotless-plugin-gradle from 5.12.4 to 5.14.0

    Bump spotless-plugin-gradle from 5.12.4 to 5.14.0

    Bumps spotless-plugin-gradle from 5.12.4 to 5.14.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 1
  • Bump spotless-plugin-gradle from 5.12.4 to 5.13.0

    Bump spotless-plugin-gradle from 5.12.4 to 5.13.0

    Bumps spotless-plugin-gradle from 5.12.4 to 5.13.0.

    Commits
    • 2fc78fc Published gradle/5.13.0
    • 32df430 Published lib/2.14.0
    • 836cd88 Added missing Eclipse formatter support up to version 4.19.
    • 657d948 Published ext-eclipse-wtp/3.21.0
    • f28e04e Published ext-eclipse-cdt/10.2.0
    • 9ba8206 Revert goomph to ide pre-3.28, and use Java 11 for p2asmaven fatjar tasks (#874)
    • 97f0977 Use p2asmaven version compatible with openjdk:11 (fixes #873)
    • fa3ce68 :Revert "Use openjdk:8.0 for all the p2asmaven fatjar tasks."
    • a98aea0 Upgraded to CDT version 10.2
    • 92bdbdb Upgraded to WebTools version 2021-03 / 3.21.0.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 1
  • Bump appcompat from 1.2.0 to 1.3.0

    Bump appcompat from 1.2.0 to 1.3.0

    Bumps appcompat from 1.2.0 to 1.3.0.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 1
  • Bump gradle from 4.1.3 to 7.0.0

    Bump gradle from 4.1.3 to 7.0.0

    Bumps gradle from 4.1.3 to 7.0.0.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 0
  • Bump appcompat from 1.2.0 to 1.3.1

    Bump appcompat from 1.2.0 to 1.3.1

    Bumps appcompat from 1.2.0 to 1.3.1.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 0
  • Bump spotless-plugin-gradle from 5.12.4 to 5.14.2

    Bump spotless-plugin-gradle from 5.12.4 to 5.14.2

    Bumps spotless-plugin-gradle from 5.12.4 to 5.14.2.

    Commits
    • 6e79471 Published gradle/5.14.2
    • b71bf5a Published lib/2.15.2
    • 5fe0566 Fix SQL whitespace handing in comments (#897)
    • 39a1102 Fix SQL whitespace handing in comments
    • fc350d4 Published gradle/5.14.1
    • 72550e7 Published lib/2.15.1
    • 7028493 Improve JsonSimple exception messages (#885)
    • bb80062 Improve JsonSimple exception messages
    • eb8004c Published ext-eclipse-wtp/3.22.0
    • 1644a73 Upgraded to WebTools version 2021-06 / 3.22.0.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 0
  • Upgrade to GitHub-native Dependabot

    Upgrade to GitHub-native Dependabot

    Dependabot Preview will be shut down on August 3rd, 2021. In order to keep getting Dependabot updates, please merge this PR and migrate to GitHub-native Dependabot before then.

    Dependabot has been fully integrated into GitHub, so you no longer have to install and manage a separate app. This pull request migrates your configuration from Dependabot.com to a config file, using the new syntax. When merged, we'll swap out dependabot-preview (me) for a new dependabot app, and you'll be all set!

    With this change, you'll now use the Dependabot page in GitHub, rather than the Dependabot dashboard, to monitor your version updates, and you'll configure Dependabot through the new config file rather than a UI.

    If you've got any questions or feedback for us, please let us know by creating an issue in the dependabot/dependabot-core repository.

    Learn more about migrating to GitHub-native Dependabot

    Please note that regular @dependabot commands do not work on this pull request.

    dependencies 
    opened by dependabot-preview[bot] 1
  • Does not paint properly with constraintlayout 2.0

    Does not paint properly with constraintlayout 2.0

    With the current layout the circle around the text spreads across the width. Here is a fix. It uses the spread aspect to make it paint correctly with constraint layout 1.x and 2.x

        <TextView
            android:id="@+id/textViewNegative"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="@dimen/stepper_side_control_margin_start"
            android:text="@string/stepper_text_negative"
            android:textSize="@dimen/stepper_side_control_text_size"
            app:layout_constraintHorizontal_chainStyle="spread_inside"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toStartOf="@id/viewCounter"
            app:layout_constraintTop_toTopOf="parent" />
    
        <FrameLayout
            android:id="@+id/viewCounter"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:background="@drawable/circle"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintDimensionRatio="H,1:1"
            app:layout_constraintStart_toEndOf="@id/textViewNegative"
            app:layout_constraintEnd_toStartOf="@id/textViewPositive"
            app:layout_constraintTop_toTopOf="parent">
    
            <TextView
                android:id="@+id/viewCounterText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text="@string/stepper_text_count"
                android:textColor="@color/stepper_text"
                android:textSize="24sp" />
    
        </FrameLayout>
    
        <TextView
            android:id="@+id/textViewPositive"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="@dimen/stepper_side_control_margin_end"
            android:text="@string/stepper_text_positive"
            android:textSize="@dimen/stepper_side_control_text_size"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toEndOf="@+id/viewCounter"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintTop_toTopOf="parent" />
    
    
    opened by MKevin3 1
Releases(1.0.1)
  • 1.0.1(Mar 23, 2019)

    The following issue is fixed:

    • (PR: 39) fixes issue #38 to have more control over the size of the stepper

    New dimensions

    Two new dimensions are added to set the margins of the negative and positive textview. You can override these values by putting them in the dimens.xml of your app.

    <dimen name="stepper_side_control_margin_start">8dp</dimen>
    <dimen name="stepper_side_control_margin_end">8dp</dimen>
    
    Source code(tar.gz)
    Source code(zip)
  • 1.0(Jan 13, 2019)

    • (PR: #34) Worked on a big revamp of the internals of Stepper-Touch. Fixes issues:
    • (PR: #35) Support RTL layout, fixes issue: #20

    The following issues are fixed:

    • #12 The widget was not correctly drawn inside a ScrollContainer.
    • #23 Ability to reset the widget

    With the major changes the API also changed a bit by removing the unnecessary stepper interface. See readme for more details.

    Source code(tar.gz)
    Source code(zip)
  • 0.8(Jan 12, 2019)

    Thanks to the contribution of @imaNNeoFighT there are now two new properties available:

    app:app:stepperAllowNegative=""
    app:app:stepperAllowPositive=""
    

    This allows you to hide and disable either side of the stepper.

    Source code(tar.gz)
    Source code(zip)
  • 0.7(Jan 12, 2019)

    Migrated the library to androidx due to this issue: #24

    Projects that didn't migrate yet can only use version 0.6 or lower and won't receive any updates anymore.

    Source code(tar.gz)
    Source code(zip)
  • 0.6(Jul 14, 2017)

    Increase or decrease the number when tapping on one of the sides Pull request: https://github.com/DanielMartinus/Stepper-Touch/pull/6

    Enable the feature by calling:

    stepperTouch.enableSideTap(true)
    
    Source code(tar.gz)
    Source code(zip)
  • 0.5(May 25, 2017)

    Stepper touch had problems with interactions when it was implemented within a viewgroup such as a ScrollView as reported in #8 . This release contains a hot-fix disallowing the parent view to intercept touch events while interacting with the Stepper Touch widget.

    Source code(tar.gz)
    Source code(zip)
  • 0.4(May 15, 2017)

Owner
Dion Segijn
Android @ Disney+
Dion Segijn
A custom Stepper for jetpack compose 🚀

Compose-Stepper Compose-Stepper library provides a custom stepper in the modern android toolkit Jetpack compose which can be easily added in to your c

maryam memarzadeh 13 Dec 22, 2022
Account-Touch is a simple account-sharing service.

account-touch A-Touch is a simple account-sharing service. feature user & permission Create an user with a nickname and emoji account You can see the

Euphony 2 Aug 4, 2022
Annotation based Android lint check generation

Intervention Annotation based Android lint check generation Generate custom Android lint checks and have lint warn you about code you may be dealing w

Fanis Veizis 25 Aug 18, 2022
Extension functions over Android's callback-based APIs which allows writing them in a sequential way within coroutines or observe multiple callbacks through kotlin flow.

callback-ktx A lightweight Android library that wraps Android's callback-based APIs into suspending extension functions which allow writing them in a

Sagar Viradiya 171 Oct 31, 2022
Beautifully designed Pokémon Database app for Android based on PokéAPI and powered by Kotlin.

PokéFacts PokéFacts is an open-source Pokémon Database app for Android based on PokéAPI and powered by Kotlin. The app allows users to view Pokémons,

Arjun Mehta 9 Oct 22, 2022
Delish, a Food Recipes App in Jetpack Compose and Hilt based on modern Android tech-stacks and MVVM clean architecture.

Delish Screens Tech stack & Open-source libraries 100% Kotlin based + Coroutines + Flow for asynchronous. Dagger Hilt 2.37 Accompanist JetPack Jetpack

Mohamed Elbehiry 305 Dec 12, 2022
Android app with minimal UI to run snowflake pluggable transports proxy, based on library IPtProxy

Simple Kotlin app for testing IPtProxy's snowflake proxy on Android Essentially a button for starting and stopping a Snowflake Proxy with the default

null 2 Jun 26, 2022
Android sample application based on Andorid architecture

Gitgle Gitgle(Github + Google) is simple github user search application, using G

WonJoong 3 Jan 22, 2022
A markdown-based note-taking app for Android

Noteless A markdown-based note-taking app for Android Compatible with notes saved in Notable Features Markdown-optimized editor with syntax highlighti

null 459 Dec 29, 2022
A simple, classic Kotlin MVI implementation based on coroutines with Android support, clean DSL and easy to understand logic

A simple, classic Kotlin MVI implementation based on coroutines with Android support, clean DSL and easy to understand logic

Nek.12 4 Oct 31, 2022
A native android app that shows how much calories one must consume based on their profile

Healtify is a native android app which allows the user to track the amout of Calories they are consuming. It not only tracks the calories but also shows how much of fat, protein and carbs they have consumed and how much they should be doing.

Anindya Ray 9 Aug 20, 2022
🪐 Modern Android development with Hilt, Coroutines, Flow, JetPack(ViewModel) based on MVVM architecture.

Ceres ?? Modern Android development with Hilt, Coroutines, Flow, JetPack(ViewModel) based on MVVM architecture. Download Gradle Add the dependency bel

Teodor G. 21 Jan 11, 2023
Kotlin-based modern RecyclerView rendering weapon

Read this in other languages: 中文, English, Changelog Yasha Item introduction: Kotlin-based modern RecyclerView rendering weapon Item Features: No Adap

Season 514 Dec 21, 2022
An Easy-to-use Kotlin based Customizable Modules Collection with Material Layouts by BlackBeared.

Fusion By BlackBeared An Easy-to-use Kotlin based Customizable Library with Material Layouts by @blackbeared. Features Custom Floating Action Buttons

Sandip Savaliya 38 Oct 5, 2022
Download tool based on kotlin and coroutine.

DownloadX A multi-threaded download tool written with Coroutine and Kotlin Read this in other languages: 中文, English, Changelog Prepare Add jitpack re

Season 138 Dec 22, 2022
:octocat: A demo project based on MVVM architecture and material design & animations.

GithubFollows A simple demo project based on MVVM clean architecture and material design & animations. Architecture Specs & Open-source libraries Mini

Jaewoong Eum 289 Jan 4, 2023
🎬 A demo project for The Movie DB based on Kotlin MVVM architecture and material design & animations.

TheMovies A simple project for The Movie DB based on Kotlin MVVM clean architecture and material design & animations. How to build on your environment

Jaewoong Eum 419 Jan 7, 2023
A kotlin implementation of commutative encryption based on ECC ElGamal encryption over Curve25519

komuta A commutative encryption implementation. This is a naive implementation of commutative encryption using the ElGamal scheme applied over Curve25

Mircea Nistor 7 Nov 17, 2022
A framework for writing composable parsers based on Kotlin Coroutines.

Parsus A framework for writing composable parsers based on Kotlin Coroutines. val booleanGrammar = object : Grammar<BooleanExpression>() { val ws

Aleksei Semin 28 Nov 1, 2022