ListView滚动到选定的项目
我有一个编辑文本和下面的button的ListView。 当我点击一个listView项目时,键盘会出现,并按下编辑文本和button。 我想要列表滚动到选定的项目。 任何想法? 谢谢
你可以使用ListView的setSelection(int position)
方法来滚动到一行。
您可以使用ListView的smoothScrollToPosition(int position)
滚动到列表中的特定位置。
对于直接滚动:
getListView().setSelection(11);
为了顺利滚动:
getListView().smoothScrollToPosition(11);
滚动到顶部
getListView().setSelectionAfterHeaderView();
注意
尝试在后期调用它,因为有时候你调用它的方法时,还没有创buildlistview
getListView().postDelayed(new Runnable() { @Override public void run() { lst.setSelection(15); } },100L);
你应该使用transcript mode
:
getListView().setTranscriptMode(ListView.TRANSCRIPT_MODE_NORMAL);
在被点击的列表项上设置一个监听器,然后在单击时使用View.getTop()
或View.getBottom()
来获取它在父代中的位置。 然后,您可以使用ListView.scrollTo(x, y)
滚动到列表项目。
哟可以找
listView.setSelectionFromTop(position,distanceFromHeader);
它将位置的位置,在列表视图顶部以下的指定像素
使用持续时间可带来更好的用户体验 使用这个,加上持续时间。 将项目顺利滚动到列表视图的顶部。
int duration = 500; //miliseconds int offset = 0; //fromListTop listview.smoothScrollToPositionFromTop(position,offset,duration);
- 缩短持续时间,使滚动更快
您可以使用
smoothScrollToPosition(position)
只需增加1项的位置,就可以得到项目的视图。
getListView().smoothScrollToPosition(position + 1);