【发布时间】:2013-09-12 21:44:25
【问题描述】:
背景
我正在尝试让 AdapterView (listview, gridview,...) 慢慢自动滚动。
用户可以随时切换,不必一直移动到adapterView的末尾。
再次,我不希望让 adapterView 一直滚动到底部,因为用户应该能够取消自动滚动。
我尝试过的
为此,我正在使用下一个代码:
private static final SCROLLING_RUNNABLE = new Runnable() {
@Override
public void run() {
final int duration = 10;
final int pixelsToMove = 1;
mAdapterView.smoothScrollBy(pixelsToMove, duration);
mHandler.postDelayed(this, duration);
}
};
...
// use this to turn auto-scrolling on:
mHandler.post(SCROLLING_RUNNABLE);
// use this to turn auto-scrolling off:
mHandler.removeCallbacks(SCROLLING_RUNNABLE);
问题
代码通常可以运行,但在某些情况下,滚动开始需要很长时间。
事实上,似乎我打开和关闭的次数越多,我就越需要等待它开始自动滚动。
我认为只有当我滚动回顶部时才会出现此问题。当adapterView滚动一点时它工作得很好。
由于我不知道如何获取adapterView的当前滚动值,所以我不知道如何解决这个问题。
问题
我可以做些什么来解决这个问题?有其他选择吗?
【问题讨论】:
标签: android android-listview scroll android-gridview android-adapterview