ニュースリーダータイプのアンドロイドアプリケーションを開発しています。ここで、ユーザーがニュースリストをスクロールし始めるときに、カスタムヘッダーとフッターバーをクリアします。ユーザーがニュースをスクロールするのを止めると、これらのバーが表示されます。このようにして、ユーザーにニュースを読むためのスペースを広げることができます。しかし問題は、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. GestureListener.Holdイベントを設定する方法は?
- 2. ScrollViewでonScrollイベントを実装する方法は?
- 3. symfony 2でform.set_dataイベントのリスナーを設定する方法は?
- 4. カレンダーでイベントのイベントレイアウトを設定する方法は?
- 5. ScrollViewのコンテンツオフセットを設定します
- 6. イベントを発生させずにcheckbox.isCheckedを設定する方法
- 7. GWTのイベントの枠線を設定する方法は?
- 8. React?の状態を設定するonChangeイベントの処理方法
- 9. イベントにスロットカラーを設定する方法剣道スケジューラ
- 10. イベントの緯度と経度を設定する方法
- 11. ImageViewをScrollViewの下に設定
- 12. androidのScrollview内でViewpagerの高さを設定する
- 13. BlackberryでカスタムHorizontal Field ManagerとClickイベントでフォーカスを設定する方法は?
- 14. ボタンでonclickイベントを設定するエラー
- 15. jqueryでイベントを含む日にcssクラスを設定する方法Fullcalendar
- 16. FlashProfessionalのFlashBuilderで設定定数を設定する方法
- 17. iOS:IBの下にScrollViewを設定できますか?
- 18. Python、I/Oイベントをトレースするためのフックを設定する方法
- 19. apache2設定でグループアクセスを動的に設定する方法
- 20. JQueryでアトリビュートを設定/設定する方法
- 21. Windowsメディアプレーヤーを「エクスプレス設定」プログラムで設定する方法は?
- 22. ハブのサービス設定で「リダイレクトURI」を設定する方法
- 23. rails2でmysql2を設定する方法
- 24. android:layout_columnをプログラムで設定する方法
- 25. Yiiでデフォルトコントローラーを設定する方法
- 26. System.Net.WebRequestでユーザーエージェントを設定する方法#
- 27. HTTPartyでポートを設定する方法
- 28. PHPでBeanstalkdを設定する方法
- 29. ウェブサーバーでPYTHONPATHを設定する方法
- 30. TextInputLayoutでOnClickListenerを設定する方法
ありがとうPaul、しかし、これらのソリューションは、ListViewに適用される、私はそれらをScrollViewに実装する方法がわかりません。助けてください? – orchidrudra
ああ、うわあ、それについて残念(私は何とかタイトルを無視!)。この回答は動作しているとマークされていました:http://stackoverflow.com/questions/3513594/android-scrollview-setonscrolllistener-like-listview –