以編程方式滾動到Android ListView中的特定位置如何以編程方式滾動到某個特定位置ListView?例如,我有一個String[] {A,B,C,D....},我需要將頂部可見項設置ListView為我的索引21 String[]。
3 回答

瀟瀟雨雨
TA貢獻1833條經驗 獲得超4個贊
對于直接滾動:
getListView().setSelection(21);
為了平滑滾動:
getListView().smoothScrollToPosition(21);

慕虎7371278
TA貢獻1802條經驗 獲得超4個贊
對于具有滾動持續(xù)時間的SmoothScroll:
getListView().smoothScrollToPositionFromTop(position,offset,duration);
參數
position - >滾動到
偏移的位置---->滾動完成時從視圖頂部到位的所需距離(以像素
為單位)duration->滾動使用的毫秒數
注意:來自API 11。
HandlerExploit的回答是我正在尋找的,但我的listview非常冗長,并且還有字母滾動條。然后我發(fā)現同樣的功能也可以采取其他參數:)
編輯:(來自AFDs建議)
要定位當前選擇:
int h1 = mListView.getHeight();int h2 = listViewRow.getHeight();mListView.smoothScrollToPositionFromTop(position, h1/2 - h2/2, duration);

慕的地8271018
TA貢獻1796條經驗 獲得超4個贊
將代碼放在處理程序中,如下所示,
public void timerDelayRunForScroll(long time) { Handler handler = new Handler(); handler.postDelayed(new Runnable() { public void run() { try { lstView.smoothScrollToPosition(YOUR_POSITION); } catch (Exception e) {} } }, time); }
然后調用這個方法,如,
timerDelayRunForScroll(100);
干杯!?。?/p>
- 3 回答
- 0 關注
- 690 瀏覽
添加回答
舉報
0/150
提交
取消