在Android中很好地设置ListView滚动位置

Car*_*ter 9 android listview scroll

我知道setSelection(),setSelectionFromTop()setSelectionAfterHeaderView(),但他们都不似乎做我想做的.

给定列表中的项目,我想滚动以便它在视图中.如果项目在列表的可见窗口上方,我想滚动直到该项目是列表中的第一个可见项目; 如果项目在可见窗口下方,我希望它向上滚动,直到它是列表中的最后一个可见项目.如果该项目已经可见,我不希望发生任何滚动.

我该怎么做?

小智 15

之所以发生这种情况,是因为尚未创建listView.尝试发布runnable,例如:

getListView().postDelayed(new Runnable() {          
    @Override
    public void run() {
        lst.setSelection(15);
    }
},100L);
Run Code Online (Sandbox Code Playgroud)