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

Posted

技术标签:

【中文标题】如何从特定项目位置开始显示列表视图【英文标题】:How to start display a list-view from specific item position 【发布时间】:2015-03-20 21:39:15 【问题描述】:

我有 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 行。(这些方法是我使用的,但可能不是解决方案)我也没有找到解决方案谷歌搜索它。请让我知道你们是否可以处理这个问题!

非常感谢您的收听!

【问题讨论】:

【参考方案1】:

此行将从顶部开始选择 n 行:

listview.setSelectionFromTop(n, 0);

因此,对于您的情况,当您想选择 52 行时,您必须在设置适配器后在活动开始时正确执行以下代码

listview.setSelectionFromTop(52, 0);

【讨论】:

感谢它运行良好! (因为代表少,不能投票)【参考方案2】:

试试这个: link

listview.smoothScrollToPosition(yourPosition);

【讨论】:

以上是关于如何从特定项目位置开始显示列表视图的主要内容,如果未能解决你的问题,请参考以下文章

从Python列表中的特定位置删除项目[重复]

无法将查询另存为视图表

如何从列表视图中的标记颜色开始?

SQL 如何查询指定架构中所有表(或视图)的名称

访问使用列表框中选择的项目更新子表单

Android如何从同一个数组中仅显示列表视图中的某些项目?