【问题标题】:android ListView requestFocusFromTouch setSelection smoothScrollToPosition seems to be ignoredandroid ListView requestFocusFromTouch setSelection smoothScrollToPosition 似乎被忽略了
【发布时间】:2013-11-15 13:26:27
【问题描述】:

乍一看,ListView 的问题很简单。

我以非常经典的方式使用它:

listView = (ListView) view.findViewById(R.id.myid);
listView.setAdapter(adapter);
adapter.clear();
adapter.addAll(result);
adapter.notifyDataSetChanged();

第一次使用时,listView 位于顶部,这并不奇怪。但是,当我清除适配器并放入新数据时

adapter.clear();
adapter.addAll(result);
adapter.notifyDataSetChanged();

它保持先前选择的位置。但我想再次将列表滚动到顶部。

我试过了:

listView.setSelection(0);

listView.requestFocusFromTouch();
listView.setSelection(0);

listView.smoothScrollToPosition(0);

一切似乎都被忽略了。 :( 如何强制 listView 返回第一个元素。

【问题讨论】:

  • 我可以添加什么,我使用 ViewPager (v4)。也许它对此有一些影响?

标签: java android listview android-listview


【解决方案1】:

当您调用 setSelection(0) 时,您将位于 0 位置的项目设置为选中的项目并滚动到位置 0,所以实际上您是从位置 0 滚动到位置 0

【讨论】:

    猜你喜欢
    • 2021-10-28
    • 2016-09-30
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 2017-12-05
    • 2012-03-08
    • 2015-12-11
    • 2014-04-15
    相关资源
    最近更新 更多