如何从特定项目位置开始显示列表视图
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);
【讨论】:
以上是关于如何从特定项目位置开始显示列表视图的主要内容,如果未能解决你的问题,请参考以下文章