Ekranın alt kısmında yükleme, ilerleme durumu veya gezinme çubuğunu göstermek için kaydırma çubuklarını kullanabilirsiniz. Kaydırma çubukları, genel kullanıcı deneyimi bileşenleridir ve Glassware'e uygulanırken dikkatli bir şekilde kullanılmalıdır.
Kaydırma Çubuğu Kaydırma Çubuğu
Kaydırma çubukları, bir kartta birden fazla kart hızlıca
kaydırarak ilgili konumunuzu belirtmek için kullanılır. Slider.Scroller
kullanarak aynı türde efekt oluşturabilirsiniz.
- Kaydırma çubuğunu görüntülemek için
View
kullananSlider
oluşturmak içinSlider.from()
simgesini kullanın. startScroller()
kullanarakSlider.Scroller
oluşturup maks. ve başlangıç konumlarını ayarlayın.
Kullanıcı dokunduğunda bir kaydırma çubuğunu sonraki pozisyona hareket ettiren basit bir uygulamayı burada görebilirsiniz:
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();
}
}
Ek yayınlanma süresi kaydırma çubuğu
Ek süre kaydırma çubukları, kullanıcının bildirim almasının faydalı olduğu etkinliklerde çalışır ancak kullanıcı etkileşimi gerekmez. Slider.GracePeriod
kullanarak bu animasyonu ekleyebilirsiniz.
- Kaydırma çubuğunu görüntülemek için
View
kullananSlider
oluşturmak içinSlider.from()
simgesini kullanın. - Bu etkinlikleri yönetmek için bir
GracePeriod.Listener
oluşturuponGracePeriodEnd()
veonGracePeriodCancel()
uygulayın. - Bir
Slider.GracePeriod
oluşturun veGracePeriod.Listener
startGracePeriod()
yöntemine geçirerek animasyonu başlatın. - Aşağı kaydırma hareketini gerçekleştirmek için etkinliğin
onBackPressed()
öğesini geçersiz kılın. - Kullanıcı aşağı kaydırırsa kaydırma çubuğunu kapatmak için
Slider.GracePeriod
üzerindencancel()
yöntemini çağırın.
Aşağıdaki örnekte, ek süre kaydırma çubuğu, bu süre sona erdiğinde başarılı bir ses ve ek kullanım süresi kaydırma çubuğu iptal edildiğinde reddedilmiş bir ses çalan bir dinleyiciyle başlatılır:
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();
}
}
}
Belirli Kaydırma Çubuğu
Belirli kaydırma çubukları esas olarak, bir görevin ne zaman tamamlandığını hesaplayabildiğiniz ilerlemeyi göstermek için kullanılır. Slider.Determinate
kullanarak bu animasyonu ekleyebilirsiniz.
- Kaydırma çubuğunu görüntülemek için
View
kullananSlider
oluşturmak içinSlider.from()
simgesini kullanın. startScroller()
kullanarakSlider.Determinate
oluşturup maks. ve başlangıç konumlarını ayarlayın.- Animasyon bittiğinde kaydırma çubuğunu gizlemek için
Slider.Determinate
üzerindenhide()
yöntemini çağırın.
Kullanıcı dokunduğunda kaydırma çubuğunu belirli bir konuma canlandıran basit bir uygulamayı burada görebilirsiniz:
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);
}
}
Belirsiz Kaydırma Çubuğu
Belirsiz kaydırma çubukları, görevin ne zaman tamamlandığını hesaplamanın zor olduğu yükleme ekranlarında kullanılabilir. Slider.Indeterminate
kullanarak bu animasyonu ekleyebilirsiniz.
- Kaydırma çubuğunu görüntülemek için
View
kullananSlider
oluşturmak içinSlider.from()
simgesini kullanın. - Animasyonu
Slider.startIndeterminate()
yöntemiyle başlatın. - Animasyonu durdurmaya hazır olduğunuzda
Slider.Indeterminate
üzerindenhide()
yöntemini çağırın.
Kullanıcı karta dokunduğunda belirsiz bir kaydırma çubuğu oluşturan ve kullanıcı tekrar dokunduğunda kartı gizleyen basit bir uygulamayı burada görebilirsiniz:
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);
}
}