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

非常感谢您的收听!

【问题讨论】:

    标签: android android-listview adapter getview


    【解决方案1】:

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

    listview.setSelectionFromTop(n, 0);
    

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

    listview.setSelectionFromTop(52, 0);
    

    【讨论】:

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

    试试这个: link

    listview.smoothScrollToPosition(yourPosition);
    

    【讨论】:

      猜你喜欢
      • 2019-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-25
      • 1970-01-01
      • 1970-01-01
      • 2015-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多