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
- Verwenden Sie
Slider.from()
zum Erstellen einesSlider
mit einerView
um den Schieberegler einzublenden. - Erstellen Sie die
Slider.Scroller
mitstartScroller()
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
- Verwenden Sie
Slider.from()
zum Erstellen einesSlider
mit einerView
um den Schieberegler einzublenden. - Erstellen:
GracePeriod.Listener
und implementieren dieonGracePeriodEnd()
undonGracePeriodCancel()
um diese Ereignisse zu verarbeiten. - Erstellen:
Slider.GracePeriod
und starten Sie die Animation, indem Sie dieGracePeriod.Listener
in denstartGracePeriod()
. - Aktivität überschreiben
onBackPressed()
nach unten wischen. - Wischt der Nutzer nach unten, rufen Sie
cancel()
amSlider.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
- Verwenden Sie
Slider.from()
zum Erstellen einesSlider
mit einerView
um den Schieberegler einzublenden. - Erstellen Sie die
Slider.Determinate
mitstartScroller()
und die Höchst- und Ausgangspositionen festlegen. - Wenn die Animation beendet ist, rufen Sie die Methode
hide()
auf derSlider.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
- Verwenden Sie
Slider.from()
zum Erstellen einesSlider
mit einerView
um den Schieberegler einzublenden. - Starten Sie die Animation mit dem
Slider.startIndeterminate()
-Methode. - Wenn Sie die Animation beenden möchten, rufen Sie die Methode
Methode
hide()
für denSlider.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);
}
}