以编程方式滚动到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个赞
对于具有滚动持续时间的SmoothScroll:
getListView().smoothScrollToPositionFromTop(position,offset,duration);
参数
position - >滚动到
偏移的位置---->滚动完成时从视图顶部到位的所需距离(以像素
为单位)duration->滚动使用的毫秒数
注意:来自API 11。
HandlerExploit的回答是我正在寻找的,但我的listview非常冗长,并且还有字母滚动条。然后我发现同样的功能也可以采取其他参数:)
编辑:(来自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);
干杯!!!
- 3 回答
- 0 关注
- 664 浏览
添加回答
举报
0/150
提交
取消