今天我注意到,當您在ListView中快速雙擊拖動時,列表將轉到列表的末尾或開頭。看來,這隻發生在三星手機。Android - Samsung問題 - ListView快速滾動雙擊拖動
這已經成爲一個問題,因爲我將JazzyListView動畫效果添加到列表上的元素,並且只要發生快速移動,它們就會崩潰。 (每當調用ListView.layoutChildren方法時,NullPointerException)
也許我需要修改庫,或者是否有任何方法來禁用此ListView行爲?
今天我注意到,當您在ListView中快速雙擊拖動時,列表將轉到列表的末尾或開頭。看來,這隻發生在三星手機。Android - Samsung問題 - ListView快速滾動雙擊拖動
這已經成爲一個問題,因爲我將JazzyListView動畫效果添加到列表上的元素,並且只要發生快速移動,它們就會崩潰。 (每當調用ListView.layoutChildren方法時,NullPointerException)
也許我需要修改庫,或者是否有任何方法來禁用此ListView行爲?
那麼這種效應被稱爲「DOUBLE FLING」,它每當我這樣做,可惜在AbsListView你可以做投擲的唯一的事情是設置摩擦和速度的規模出現在logcat中。如果有人知道如何禁用的影響將是巨大的(但是這可能不是這個問題的最佳解決方案,因爲用戶可能熟悉這種行爲)
我做什麼(我快+骯髒的解決方案)是修改JazzyListView庫,具體JazzyHelper類,僅在確認該項目是不適用動畫之前空:
while (firstVisibleItem + indexAfterFirst < mFirstVisibleItem) {
View item = view.getChildAt(indexAfterFirst);
if(item != null) {
doJazziness(item, firstVisibleItem + indexAfterFirst, -1);
}
indexAfterFirst++;
}
int indexBeforeLast = 0;
while (lastVisibleItem - indexBeforeLast > mLastVisibleItem) {
View item = view.getChildAt(lastVisibleItem - firstVisibleItem - indexBeforeLast);
if(item != null) {
doJazziness(item, lastVisibleItem - indexBeforeLast, 1);
}
indexBeforeLast++;
}
我相信,我應該修改一些有關實例屬性mFirstVisibleItem,否則fastscrolling上刪除動畫顯示項目。但是,我的解決方案適用於任何想快速解決此問題的人。