OnScrollListener全体の事件ではAndroidの私は主に彼の実行順序を分析します:
実現のスクロールイベントリスナインタフェース
new AbsListView.OnScrollListener(){
@Override
public void onScrollStateChanged(AbsListView absListView, int scrollState)
{
switch (scrollState) {
case AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:
// 手指触屏拉动准备滚动,只触发一次 顺序: 2
break;
case AbsListView.OnScrollListener.SCROLL_STATE_FLING:
// 持续滚动开始,只触发一次 顺序: 4
break;
case AbsListView.OnScrollListener.SCROLL_STATE_IDLE:
// 整个滚动事件结束,只触发一次 顺序: 6
break;
default:
break;
}
}
@Override
public void onScroll(AbsListView absListView, int i, int i1, int i2)
{
// 一直在滚动中,多次触发 顺序: 1、3、5
}
}
前慎重にテストした後、上記の結論を引き出す、その後、非常に混乱してきました
リストのリストビュー絵巻に加えて、あるべき
SCROLL_STATE_FLINGは、画像が表示されない、パフォーマンスがスムーズなスクロール妹を許可改善スクロールしてみましょう
場合、現在のピクチャに見えるSCROLL_STATE_IDLE表示画面
onScroll()インターフェイスメソッドについては基本的に彼なし
Googleが翻訳文は、圧延後onScrollコールバックメソッドである前に完了され、測定結果が転がり、実行コールバックリストである文書に見えるが若干転がり数十の期間をトリガーします
http://developer.android.com/reference/android/widget/AbsListView.OnScrollListener.html
私にはわからない文書の記述がない、または翻訳が間違ったバーを記述する必要があり、過去に彼の声を見て、正確で完全なものではありません、私はそれが魚をスクロールしなければならないと感じ
-------------------------------------------------- -------------------------------------------------- -------------------
彼は加えました:
また、十分に詳述しないテストシーケンスの前に、私は今日のテストに起こった問題が見つかりました:
1.あなたの指がちょうど画面が引っ張っていません触れる方法がスクロール他のイベントをトリガしませんトリガをonScroll
2.指が画面に触れた場合オーバーストールした後、スライド第一の方法を、次にonScrollイベントがSCROLL_STATE_TOUCH_SCROLLで行います
3.画面上で指を最初のイベントの実装に直接スライドした場合SCROLL_STATE_TOUCH_SCROLL
3.トリガSCROLL_STATE_TOUCH_SCROLLイベントは、複数回onScrollイベントを発生し続ける直接トリガするのではなく SCROLL_STATE_FLINGイベントを
後4.スクロール 必ずしも SCROLL_STATE_FLINGイベントをトリガし、指をスライドからの関係を有していてもよいです
5.圧延プロセスはonScrollメソッドを複数回呼び出します
プロセス全体を通して数回、他のイベントをトリガonScrollに加え6. 回だけトリガされます
ます。https://my.oschina.net/zhouz/blog/213186で再現