您好我想实现一个自动向上/向下滚动的列表视图。我用定时器的方法滚动。但它没有得到顺利的onclick事件。列表视图只有十个列表项。请帮助我如何实现这一目标。
答案 0 :(得分:1)
Android实际上有一个小部件。它被称为ListViewAutoScrollHelper
,它是support library的一部分。
一个简单的实现看起来像这样:
final ListView list = (ListView) findViewById(android.R.id.list);
final ListViewAutoScrollHelper scrollHelper = new ListViewAutoScrollHelper(list);
scrollHelper.setEnabled(true);
list.setOnTouchListener(scrollHelper);
要开始滚动,请在靠近顶部(向上滚动)或向下(向下滚动)屏幕边缘的位置触摸手指,并按住您想要保持滚动的时间。
答案 1 :(得分:0)
假设您知道列表数据何时发生更改,您可以通过将列表选择设置为最后一行来手动指示列表滚动到底部。类似的东西:
private void scrollMyListViewToBottom() {
myListView.post(new Runnable() {
@Override
public void run() {
// Select the last row so it will scroll into view...
myListView.setSelection(myListAdapter.getCount() - 1);
}
});
}
private void scrollMyListViewToTop() {
myListView.post(new Runnable() {
@Override
public void run() {
// Select the last row so it will scroll into view...
myListView.setSelection(0);
}
});
}
答案 2 :(得分:0)
而不是Timer使用Async任务,然后在AsyncTask的方法发布进度中滚动ListView项。
private class MyTimer extends AsyncTask<Integer, Integer, Integer> {
protected Integer doInBackground(Integer... int)
{
while(true)
{
publishProgress(0);
try
{
Thread.sleep(2000);
}
catch (Exception e)
{
}
}
return 0;
}
protected void onProgressUpdate(Integer... progress)
{
//Scroll Your ListView
}
}