确保在android listview上可见?

Cod*_*ile 25 android listview listactivity

有没有办法可以确保Android列表视图中的给定项目完全可见?

我希望能够以编程方式滚动到特定项目,例如当我按下按钮时.

Chr*_*Orr 20

ListView.setSelection() 将滚动列表,以便所需的项目在视口中.

  • Setselection将其滚动到视图的顶部.我只需要尽可能少地移动它 (4认同)

jau*_*seg 11

试试吧:

public static void ensureVisible(ListView listView, int pos)
{
    if (listView == null)
    {
        return;
    }

    if(pos < 0 || pos >= listView.getCount())
    {
        return;
    }

    int first = listView.getFirstVisiblePosition();
    int last = listView.getLastVisiblePosition();

    if (pos < first)
    {
        listView.setSelection(pos);
        return;
    }

    if (pos >= last)
    {
        listView.setSelection(1 + pos - (last - first));
        return;
    }
}
Run Code Online (Sandbox Code Playgroud)

  • listView.smoothScrollToPosition(POS); 如果你愿意,而不是setSelection(...).谢谢jauseg. (6认同)

Jon*_*bbe 5

我相信你要找的是ListView.setSelectionFromTop()(虽然我有点迟到了).