我有一个带有编辑文本的ListView和它下面的按钮.当我单击listView项时,键盘出现并向上推动编辑文本和按钮.我希望列表滚动到所选项目.任何的想法?谢谢
and*_*rkz 72
您可以使用ListView的setSelection(int position)方法滚动到一行.
Xar*_*mer 26
对于直接滚动:
getListView().setSelection(11);
Run Code Online (Sandbox Code Playgroud)
为了平滑滚动:
getListView().smoothScrollToPosition(11);
Run Code Online (Sandbox Code Playgroud)
滚动到顶部
getListView().setSelectionAfterHeaderView();
Run Code Online (Sandbox Code Playgroud)
注意
尝试在post中调用它,因为有时候在调用它的方法时尚未创建listview
getListView().postDelayed(new Runnable() {
@Override
public void run() {
lst.setSelection(15);
}
},100L);
Run Code Online (Sandbox Code Playgroud)
在被单击的列表项上设置一个侦听器,然后在单击时使用View.getTop()或View.getBottom()来获取其在父级中的位置。然后您可以使用ListView.scrollTo(x, y)滚动到列表项。
你应该使用transcript mode:
getListView().setTranscriptMode(ListView.TRANSCRIPT_MODE_NORMAL);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
71895 次 |
| 最近记录: |