Android: ScrollView durur kaydırma sırasında Tespit
ScrollView
görünen kısmı Scrollview
içindeki hücrelerin aynı boyutta olduğu Android ScrollView
kullanarak ve ben. "Hücre" aynı yükseklikte. her Bunu yapmak için çalışıyorum ScrollView
kaydırılan sonra yerlerine oturtun.
Şu anda kullanıcı ScrollView
dokundu ve kaydırma ve orada çalışmaya başladılar ne zaman tespit ediyorum, ama oldukça can sıkıcı olabiliyor. Ayrıca Kullanıcı sadece sinema ve gezinir ve sonra yavaşlamasını zaman çalışması gerekiyor.
İPhone didDecelerate
gibi bir şey olduğunu bir işlevi yoktur ve ScrollView
kaydırma bittiğinde istiyorum herhangi bir kod var. Android için böyle bir şey var mı? Ya bak ben bir kod, bunu yapmanın daha iyi bir yolunu bulmak mı?
Android üzerinde docs baktım ve böyle bir şey bulamadı.
CEVAP
Geçenlerde açıklanan işlevi uygulamak zorunda kaldı. Benim yaptığım bir Çalıştırılabilir kontrol dışarı eğer ScrollView durdu ilerleyerek karşılaştırma tarafından döndürülen değeri getScrollY() onTouchEvent ilk tetikledi değeri döndükten sonra bir süre tarafından tanımlanan değişkennewCheck.
Kod (çalışma çözeltisi) aşağıya bakın:
public class MyScrollView extends ScrollView{
private Runnable scrollerTask;
private int initialPosition;
private int newCheck = 100;
private static final String TAG = "MyScrollView";
public interface OnScrollStoppedListener{
void onScrollStopped();
}
private OnScrollStoppedListener onScrollStoppedListener;
public MyScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
scrollerTask = new Runnable() {
public void run() {
int newPosition = getScrollY();
if(initialPosition - newPosition == 0){//has stopped
if(onScrollStoppedListener!=null){
onScrollStoppedListener.onScrollStopped();
}
}else{
initialPosition = getScrollY();
MyScrollView.this.postDelayed(scrollerTask, newCheck);
}
}
};
}
public void setOnScrollStoppedListener(MyScrollView.OnScrollStoppedListener listener){
onScrollStoppedListener = listener;
}
public void startScrollerTask(){
initialPosition = getScrollY();
MyScrollView.this.postDelayed(scrollerTask, newCheck);
}
}
O zaman ben:
scroll.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
scroll.startScrollerTask();
}
return false;
}
});
scroll.setOnScrollStoppedListener(new OnScrollStoppedListener() {
public void onScrollStopped() {
Log.i(TAG, "stopped");
}
});
BTW diğer cevaplar ben birkaç fikir benim app bunu yapmak için kullandım. Bu yardımcı olur umarım. Herhangi bir soru sormaya çekinmeyin. Şerefe.
() jQuery kaydırma kullanıcı durur kay...
ScrollView içinde liste görünümü Andro...
Kaydırma pozisyonları senkronize Scrol...
Bir ScrollView Program aracılığıyla An...
Android ScrollView gelen kaydırma çubu...