【发布时间】:2012-10-12 04:46:47
【问题描述】:
如here 所述,Android 的 GridView.scrollTo() 不起作用。解决方案中提到的方法setSelectedPosition,在GridView中似乎不存在
smoothScrollToPosition 确实有效,但我真的不想要动画。
对于上下文,我有一个 CursorAdapter-backed GridView,我希望视图“重置”,即当我更改光标时滚动到顶部。
【问题讨论】:
如here 所述,Android 的 GridView.scrollTo() 不起作用。解决方案中提到的方法setSelectedPosition,在GridView中似乎不存在
smoothScrollToPosition 确实有效,但我真的不想要动画。
对于上下文,我有一个 CursorAdapter-backed GridView,我希望视图“重置”,即当我更改光标时滚动到顶部。
【问题讨论】:
我一直在为此使用setSelection(int position),它似乎工作得很好。要滚动到顶部,只需使用 0 作为位置。
来自文档:
如果处于触摸模式,该项目将不会被选中,但仍会被正确定位。
编辑:
添加了将setSelection 发布为 Runnable 的代码:
albumsView.post(new Runnable() {
@Override
public void run() {
albumsView.setSelection(0);
}
});
【讨论】:
我发现为了可靠地使用gridView.setSelection(index),我必须先调用gridView.setAdapter()(即使适配器已经设置并且没有改变)。像这样:
gridView.setAdapter(gridAdapter);
gridView.setSelection(index);
【讨论】: