繁体   English   中英

listView在Android中自动向上/向下滚动

[英]listView scroll up/down automatically in Android

嗨,我想实现一个自动向上/向下滚动的列表视图。 我使用带计时器的滚动方法。 但这并没有使onclick事件顺利进行。 列表视图只有十个列表项。 请帮助我如何实现这一目标。

Android实际上为此提供了一个小部件。 它称为ListViewAutoScrollHelper并且是支持库的一部分。

一个简单的实现如下所示:

    final ListView list = (ListView) findViewById(android.R.id.list);
    final ListViewAutoScrollHelper scrollHelper = new ListViewAutoScrollHelper(list);
    scrollHelper.setEnabled(true);
    list.setOnTouchListener(scrollHelper);

要开始滚动,请在屏幕的顶部(向上滚动)或底部(向下滚动)附近触摸您的手指,并将其保持按住所需的时间。

假设您知道列表数据已更改,则可以通过将列表选择设置为最后一行来手动告诉列表滚动到底部。 就像是:

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);
        }
    });
}

代替Timer使用Async task,然后在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   
 }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM