java - android ListView requestFocusFromTouch setSelection smoothScrollToPosition 似乎被忽略了

标签 java android listview android-listview

起初我觉得 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 返回到第一个元素。

最佳答案

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

关于java - android ListView requestFocusFromTouch setSelection smoothScrollToPosition 似乎被忽略了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20002172/

相关文章:

android - 我可以让用户在 Android 移动支付库上使用信用卡支付吗?

android - 在文本 int TextView 中插入水平线

Java Android - 分隔线已禁用但仍显示

java - 最小化空 PartStack 抛出异常

java - 为什么列表只添加某些数字?

android - OpenGL ES 最大纹理无法正常工作?

android - 带有图像的惰性列表。如何取消线程?

android - 如何删除 ListView 中选中的项目

java - 将参数传递给 jpa 转换器

jsp - 仅使用 JSP 页面创建 JSON WebService