如何爲listFragment創建一個平滑的setSelection(position)。對於常規列表視圖,可以調用smoothScrollToPosition(position),但這僅適用於api lvl 8及更高版本,但這並不重要,因爲它不適用於listfragment而不適用於api lvl 7.Android如何爲listfragment製作動畫setSelection()?
任何創意,將有助於實現這一點的建議,不勝感激。
如何爲listFragment創建一個平滑的setSelection(position)。對於常規列表視圖,可以調用smoothScrollToPosition(position),但這僅適用於api lvl 8及更高版本,但這並不重要,因爲它不適用於listfragment而不適用於api lvl 7.Android如何爲listfragment製作動畫setSelection()?
任何創意,將有助於實現這一點的建議,不勝感激。
馬克d是正確的,如果你想順利請在ListFragment
中滾動ListView
,您需要在ListFragment
上撥打getListView()
,然後在返回的ListView
上撥打smoothScrollToPosition(int)
。當然,這隻適用於API級別8,因爲smoothScrollToPosition(int)
被引入AbsListView
,即ListView
的超級類別。
我想你可以看看代碼AbsListView.java
,看看它做什麼,並嘗試複製它在自己的AbsListView
或ListView
子類。很明顯,smoothScrollToPosition(pos)
只是在內部類PositionScroller
的一個實例上調用start(pos)
,但是在您自己的子類中複製該行爲看起來有些複雜,因爲PositionScroller
從onDetachedFromWindow()
,public void onWindowFocusChanged(boolean hasWindowFocus)
等幾個其他點被調用。我根本不清楚你如何根據AbsListView
的API 7版本將你的PositionScroller行爲乾淨地整合到你的子類中。
如果我決定使用API 7和更早版本在最近的data set中訪問Android電子市場的設備不到8%,那麼只要API低於8,我就可以踢一些簡單的東西,比如setSelectionFromTop
(由Build.VERSION.SDK_INT檢測到)。
我不認爲你可以爲API級別7做到這一點,但看到如果不能平滑滾動通過去像這樣:
listFragment.getListView().smoothScrollToPosition(0);
你真的試過了嗎?這不是listfragment支持的。 – Warpzit 2012-03-05 12:25:59
我能夠得到這個版本的工作在蜂窩設備和ICS設備上。你在哪裏看到它不被支持(你可能是對的)? – 2012-03-06 19:52:20
感謝您的答覆:) – Warpzit 2012-03-08 13:58:19
它也在這裏工作!謝謝 – Aci89 2015-07-19 05:05:11