ニュースリーダータイプのアンドロイドアプリケーションを開発しています。ここで、ユーザーがニュースリストをスクロールし始めるときに、カスタムヘッダーとフッターバーをクリアします。ユーザーがニュースをスクロールするのを止めると、これらのバーが表示されます。このようにして、ユーザーにニュースを読むためのスペースを広げることができます。しかし問題は、onScrollStopやonScrollStartのようなイベントを発生させる方法が見つからないということです。 助けてください。ScrollViewでonScrollStopイベントを設定する方法
1
A
答えて
0
List13 Android API Demoをチェックしてください。
Activity
は、ListView.OnScrollListener
を実装する必要があります。その後、コールバックを持っている:
public void onScrollStateChanged(AbsListView view, int scrollState) {
switch (scrollState) {
case OnScrollListener.SCROLL_STATE_IDLE:
break;
case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:
break;
case OnScrollListener.SCROLL_STATE_FLING:
break;
}
}
いけないあなたのListView
にsetOnScrollListener(this)
を呼び出すことを忘れ。私のプロジェクトで
1
私はので、私は自分のScrollListener
を実施し、スクロールの終了をインターセプトしなければならなかった:
public class VerticalScrollLayout extends ScrollView {
private GestureDetector gdScrolling;
private boolean isScrolling;
private OnScrollListener lOnScroll;
public VerticalScrollLayout(Context context) {
super(context);
setVerticalScrollBarEnabled(false);
gdScrolling = new GestureDetector(new SimpleOnGestureListener() {
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
isScrolling = true;
return false;
}
@Override
public boolean onDown(MotionEvent e) {
return true;
}
});
setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (gdScrolling.onTouchEvent(event)) {
return false;
}
if(event.getAction() == MotionEvent.ACTION_UP) {
if(isScrolling) {
isScrolling = false;
if(lOnScroll != null) {
lOnScroll.onScrollEnded();
}
}
}
return false;
}
});
}
public void setOnScrollListener(OnScrollListener l) {
lOnScroll = l;
}
@Override
protected void onScrollChanged(int x, int y, int oldx, int oldy) {
super.onScrollChanged(x, y, oldx, oldy);
if(lOnScroll != null) {
lOnScroll.onScrollChanged(x, y, oldx, oldy);
}
}
public interface OnScrollListener {
void onScrollChanged(int x, int y, int oldx, int oldy);
void onScrollEnded();
}
}
それはベストプラクティスではないかもしれませんが、それはうまく動作します。
+0
これを達成するためのより良い方法があれば、私も興味があります。 – sebataz
+0
このオプションは機能しますが、もっと簡単な方法が必要です。誰もが私たちとそれを共有したいと思っています。あなたの努力のために1アップ。 :) – orchidrudra
関連する問題
- 1. ScrollViewでアクションツールバーを設定する方法は?
- 2. GestureListener.Holdイベントを設定する方法は?
- 3. ScrollViewでonScrollイベントを実装する方法は?
- 4. kivy scrollview effects_clsプロパティを設定する適切な方法は何ですか?
- 5. 正しい方法UITableViewCellでScrollViewの代理人を設定する
- 6. ScrollView onScrollイベント
- 7. カレンダーでイベントのイベントレイアウトを設定する方法は?
- 8. symfony 2でform.set_dataイベントのリスナーを設定する方法は?
- 9. Android ListViewのリストアイテムでonClickイベントを設定する方法
- 10. 関数上で複数のイベントを設定する方法
- 11. イベントのイベントターゲットの設定方法
- 12. mouseClickedイベントの設定方法は?
- 13. 私のscrollViewのレイアウトの高さをフラグメントの先頭に設定する方法
- 14. ScrollViewのコンテンツオフセットを設定します
- 15. イベントを発生させずにcheckbox.isCheckedを設定する方法
- 16. イオンを使ってfirebase analyticsイベントを設定する方法3
- 17. イベントにスロットカラーを設定する方法剣道スケジューラ
- 18. 要素ビデオのイベントに変数を設定する方法
- 19. イベントをButtonコントロールに設定する方法は?
- 20. イベントの緯度と経度を設定する方法
- 21. イベントの5分前にアラームを設定する方法は?
- 22. GWTのイベントの枠線を設定する方法は?
- 23. React?の状態を設定するonChangeイベントの処理方法
- 24. イベントの開始日をテキストビューに設定する方法
- 25. ImageViewをScrollViewの下に設定
- 26. androidのScrollview内でViewpagerの高さを設定する
- 27. ScrollViewでImageViewの自動レイアウト制約を設定するには?
- 28. RNでscrollEnabledをFalseに動的に設定するScrollView
- 29. ScrollViewでスワイプを止める方法は?
- 30. BlackberryでカスタムHorizontal Field ManagerとClickイベントでフォーカスを設定する方法は?
ありがとうPaul、しかし、これらのソリューションは、ListViewに適用される、私はそれらをScrollViewに実装する方法がわかりません。助けてください? – orchidrudra
ああ、うわあ、それについて残念(私は何とかタイトルを無視!)。この回答は動作しているとマークされていました:http://stackoverflow.com/questions/3513594/android-scrollview-setonscrolllistener-like-listview –