16 Kasım 2011, ÇARŞAMBA
Android Viewpager denetleyicisi yavaşlama hızı
Android viewpager adaptör ile kaydırma hızını yavaşlatmak için bir yolu var mı?
Bu kod bakıyordum. Dong yanlış ben ne olduğunu çözemiyorum.
try{
Field mScroller = mPager.getClass().getDeclaredField("mScroller");
mScroller.setAccessible(true);
Scroller scroll = new Scroller(cxt);
Field scrollDuration = scroll.getClass().getDeclaredField("mDuration");
scrollDuration.setAccessible(true);
scrollDuration.set(scroll, 1000);
mScroller.set(mPager, scroll);
}catch (Exception e){
Toast.makeText(cxt, "something happened", Toast.LENGTH_LONG).show();
}
Bu hiçbir şeyi değiştirmez henüz hiçbir özel durum oluşur?
CEVAP
16 Mart 2012, Cuma
Başladım ile HighFlyer kodu olan gerçekten değişmiş mScroller alanı (çok güzel bir başlangıç ama işe yaramadı uzatma süresi kaydırma beri ViewPager açıkça geçiş süresi için mScroller talep halinde ilerleyin.
Önemli yöntem (smoothScrollTo) olarak işe yaramadı ViewPager uzanan kılınabilir.
Bu kod ile Nick genişleterek bu sabitleme sona erdi:
public class FixedSpeedScroller extends Scroller {
private int mDuration = 5000;
public FixedSpeedScroller(Context context) {
super(context);
}
public FixedSpeedScroller(Context context, Interpolator interpolator) {
super(context, interpolator);
}
public FixedSpeedScroller(Context context, Interpolator interpolator, boolean flywheel) {
super(context, interpolator, flywheel);
}
@Override
public void startScroll(int startX, int startY, int dx, int dy, int duration) {
// Ignore received duration, use fixed one instead
super.startScroll(startX, startY, dx, dy, mDuration);
}
@Override
public void startScroll(int startX, int startY, int dx, int dy) {
// Ignore received duration, use fixed one instead
super.startScroll(startX, startY, dx, dy, mDuration);
}
}
Ve bunu kullanarak: bunun gibi
try {
Field mScroller;
mScroller = ViewPager.class.getDeclaredField("mScroller");
mScroller.setAccessible(true);
FixedSpeedScroller scroller = new FixedSpeedScroller(mPager.getContext(), sInterpolator);
// scroller.setFixedDuration(5000);
mScroller.set(mPager, scroller);
} catch (NoSuchFieldException e) {
} catch (IllegalArgumentException e) {
} catch (IllegalAccessException e) {
}
5 saniye için bu kodları süresini ettim ve benim ViewPager bunu kullandı.
Bu yardımcı olur umarım.
Bunu Paylaş:
Android.vs android.app Parçaları deste...
Android: ViewPager WRAP_CONTENT var ku...
Altyazı denetleyicisi zaten * hata And...
Android ViewPager Parça Sayfa çıkarın...
Android: Dikey ViewPager...