Schieberegler

Mithilfe von Schiebereglern können Sie Lade-, Fortschritts- oder Navigationsleisten auf dem unten auf dem Bildschirm. Schieberegler sind globale UX-Komponenten und sollten wenn Sie sie in Glassware implementieren.


Schieberegler für Bildlaufleiste

Scroll-Schieberegler zeigen die Position einer Karte an, während Sie wischen. auf mehreren Karten angezeigt. Du kannst die gleiche Art von Effekt mit Slider.Scroller

  1. Verwenden Sie Slider.from() zum Erstellen eines Slider mit einer View um den Schieberegler einzublenden.
  2. Erstellen Sie die Slider.Scroller mit startScroller() und die Höchst- und Ausgangspositionen festlegen.

Hier ist eine einfache Implementierung, die einen Scroller zur nächsten Position animiert. wenn Nutzende auf Folgendes tippen:

public final class SliderActivity extends Activity {

    private static final int MAX_SLIDER_VALUE = 5;
    private static final long ANIMATION_DURATION_MILLIS = 5000;

    private CardScrollView mCardScroller;
    private Slider mSlider;

    @Override
    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);

        // Create the cards for the view
        mCardScroller = new CardScrollView(this);
        mCardScroller.setAdapter(new CardAdapter(createCards()));

        // Set the view for the Slider
        mSlider = Slider.from(mCardScroller);

        mCardScroller.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                processSliderRequest(position+1);
            }
        });

        setContentView(mCardScroller);
    }

    private void processSliderRequest(position) {
        Slider.Scroller scroller = mSlider.startScroller(MAX_SLIDER_VALUE, 0);

        // Animate the slider to the next position. The slider
        // automatically hides after the duration has elapsed
        ObjectAnimator.ofFloat(scroller, "position", 0, position)
            .setDuration(ANIMATION_DURATION_MILLIS)
            .start();
    }
}

Kulanzzeitraum-Schieberegler

Schieberegler für den Kulanzzeitraum funktionieren bei Aktivitäten, bei denen es für den Nutzer sinnvoll ist, eine Benachrichtigung erhalten, aber keine Interaktion des Nutzers erforderlich. Du kannst Folgendes hinzufügen: mit Slider.GracePeriod

  1. Verwenden Sie Slider.from() zum Erstellen eines Slider mit einer View um den Schieberegler einzublenden.
  2. Erstellen: GracePeriod.Listener und implementieren die onGracePeriodEnd() und onGracePeriodCancel() um diese Ereignisse zu verarbeiten.
  3. Erstellen: Slider.GracePeriod und starten Sie die Animation, indem Sie die GracePeriod.Listener in den startGracePeriod().
  4. Aktivität überschreiben onBackPressed() nach unten wischen.
  5. Wischt der Nutzer nach unten, rufen Sie cancel() am Slider.GracePeriod um den Schieberegler auszublenden.

Im folgenden Beispiel wird der Scroller für den Kulanzzeitraum mit einem Listener initiiert. wird ein Erfolgston abgespielt, wenn die Periode endet, und ein abgeblendeter Ton, wenn die Der Schieberegler für den Kulanzzeitraum wurde deaktiviert:

public final class SliderActivity extends Activity {

    ...
    private Slider.GracePeriod mGracePeriod;

    private final GracePeriod.Listener mGracePeriodListener =
        new GracePeriod.Listener() {

        @Override
        public void onGracePeriodEnd() {
            // Play a SUCCESS sound to indicate the end of the grace period.
            AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
            am.playSoundEffect(Sounds.SUCCESS);
            mGracePeriod = null;
        }

        @Override
        public void onGracePeriodCancel() {
            // Play a DIMISS sound to indicate the cancellation of the grace period.
            AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
            am.playSoundEffect(Sounds.DISMISSED);
            mGracePeriod = null;
        }
    };

    @Override
    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);

        // Create the cards for the view
        mCardScroller = new CardScrollView(this);
        mCardScroller.setAdapter(new CardAdapter(createCards()));

        // Set the view for the Slider
        mSlider = Slider.from(mCardScroller);

        mCardScroller.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                mGracePeriod = mSlider.startGracePeriod(mGracePeriodListener);
            }
        });

        setContentView(mCardScroller);
    }

    @Override
    public void onBackPressed() {
        // If the Grace Period is running,
        // cancel it instead of finishing the Activity.
        if (mGracePeriod != null) {
            mGracePeriod.cancel();
        } else {
            super.onBackPressed();
        }
    }
}

Schieberegler „Determinate“

Die Schieberegler dienen in erster Linie dazu, den Fortschritt anzuzeigen. So können Sie berechnen, eine Aufgabe beendet. Sie können diese Animation hinzufügen, indem Sie Slider.Determinate

  1. Verwenden Sie Slider.from() zum Erstellen eines Slider mit einer View um den Schieberegler einzublenden.
  2. Erstellen Sie die Slider.Determinate mit startScroller() und die Höchst- und Ausgangspositionen festlegen.
  3. Wenn die Animation beendet ist, rufen Sie die Methode hide() auf der Slider.Determinate um den Schieberegler auszublenden.

Hier ist eine einfache Implementierung, die den Scroller zu einer festgelegten Position animiert, wenn der Tippt der Nutzer auf:

public final class SliderActivity extends Activity {

    ...
    private Slider.Determinate mDeterminate;

    @Override
    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);

        // Create the cards for the view
        mCardScroller = new CardScrollView(this);
        mCardScroller.setAdapter(new CardAdapter(createCards()));

        // Set the view for the Slider
        mSlider = Slider.from(mCardScroller);

        mCardScroller.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                   int position, long id) {
                mDeterminate = mSlider.startDeterminate(MAX_SLIDER_VALUE, 0);
                ObjectAnimator animator = ObjectAnimator.ofFloat(mDeterminate,
                    "position", 0, MAX_SLIDER_VALUE);

                // Hide the slider when the animation stops.
                animator.addListener(new AnimatorListenerAdapter() {
                    @Override
                    public void onAnimationEnd(Animator animation) {
                        mDeterminate.hide();
                    }
                });

                // Start an animation showing the different positions of the slider.
                animator.setDuration(ANIMATION_DURATION_MILLIS).start();
            }
        });

        setContentView(mCardScroller);
    }
}

Indeterminate-Schieberegler

Unbestimmte Schieberegler können für Ladebildschirme verwendet werden, um den Abschluss der Aufgabe zu berechnen. Du kannst Folgendes hinzufügen: mit Slider.Indeterminate

  1. Verwenden Sie Slider.from() zum Erstellen eines Slider mit einer View um den Schieberegler einzublenden.
  2. Starten Sie die Animation mit dem Slider.startIndeterminate()-Methode.
  3. Wenn Sie die Animation beenden möchten, rufen Sie die Methode Methode hide() für den Slider.Indeterminate

Hier ist eine einfache Implementierung, die den Indeterminate Scroller erstellt, wenn der Der Nutzer tippt auf die Karte und blendet sie aus, wenn er noch einmal tippt:

public final class SliderActivity extends Activity {

    ...
    private Slider.Indeterminate mIndeterminate;

    @Override
    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);

        // Create the cards for the view
        mCardScroller = new CardScrollView(this);
        mCardScroller.setAdapter(new CardAdapter(createCards()));

        // Set the view for the Slider
        mSlider = Slider.from(mCardScroller);

        mCardScroller.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                   int position, long id) {
                // Toggle between showing/hiding the indeterminate slider.
                if (mIndeterminate != null) {
                    mIndeterminate.hide();
                    mIndeterminate = null;
                } else {
                    mIndeterminate = mSlider.startIndeterminate();
                }
        });

        setContentView(mCardScroller);
    }
}