如何从特定项目位置开始显示列表视图

How to start display a list-view from specific item position

我有一个包含 300 首 mp3 歌曲的列表视图,假设正在播放第 52 首歌曲。所以我希望下次用户打开歌曲列表时,他前面的列表行必须从第 52 行开始(而上下仍然是行)。我尝试使用

public View getViewByPosition(int pos, ListView listView) {
    final int firstListItemPosition = listView.getFirstVisiblePosition();
    final int lastListItemPosition = firstListItemPosition + listView.getChildCount() - 1;

    if (pos < firstListItemPosition || pos > lastListItemPosition ) {
        return listView.getAdapter().getView(pos, null, listView);
    } else {
        final int childIndex = pos - firstListItemPosition;
        return listView.getChildAt(childIndex);
    }
}

还有

adapter.getItem(52);

但这两种方法都是毫无意义的方法,不要带我到第 52 行。(这些方法是我使用的,但可能不是解决方案)而且我用谷歌搜索也没有找到解决方案。如果你们能处理这个问题,请告诉我!!

非常感谢您的收听!

这一行将从顶部开始 select n 行:

listview.setSelectionFromTop(n, 0);

因此,对于您想要 select 52 行的情况,您必须在设置适配器

后在 activity 开始时正确遵循代码
listview.setSelectionFromTop(52, 0);

试试这个: link

listview.smoothScrollToPosition(yourPosition);