通过代码控制ListView上下滚动
2015-09-22 10:59
260 查看
public class ListViewScrollTestActivity extends Activity implements View.OnClickListener { private ListView mListView; private Button up; private Button down; private Button off; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_listview_scroll); up = (Button) findViewById(R.id.up); down = (Button) findViewById(R.id.down); off = (Button) findViewById(R.id.off); up.setOnClickListener(this); down.setOnClickListener(this); off.setOnClickListener(this); mListView = (ListView) findViewById(R.id.listview); List<String> list = new ArrayList<>(); for (int i = 0; i < 40; i++) { list.add("list: " + i); } ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, list); mListView.setAdapter(adapter); } @Override public void onClick(View view) { switch (view.getId()) { case R.id.up: listScrollUp(); break; case R.id.down: listScrollDown(); break; case R.id.off: listScrollOff(); break; default: break; } } /** * 方法postDelayed的作用是延迟多少毫秒后开始运行, * 而removeCallbacks方法是删除指定的Runnable对象,使线程对象停止运行。 */ Handler handler = new Handler() { @Override public void handleMessage(Message msg) { // handler.removeCallbacks(run_scroll_down); // handler.removeCallbacks(run_scroll_up); } }; /** * 向上滚动 */ public void listScrollUp() { listScrollOff(); handler.postDelayed(run_scroll_up, 0); } /** * 向下滚动 */ public void listScrollDown() { listScrollOff(); handler.postDelayed(run_scroll_down, 0); } /** * 停止滚动 */ public void listScrollOff() { handler.removeCallbacks(run_scroll_down); handler.removeCallbacks(run_scroll_up); // Message message = handler.obtainMessage(); // handler.sendMessage(message); } Runnable run_scroll_up = new Runnable() { @Override public void run() { /** * Android源码中对listview.smoothscrollby(int, int)方法解释: * Smoothly scroll by distance pixels over duration milliseconds. * Parameters: * distance Distance to scroll in pixels. * duration Duration of the scroll animation in milliseconds. * */ mListView.smoothScrollBy(10, 10); handler.postDelayed(run_scroll_up, 10); } }; Runnable run_scroll_down = new Runnable() { @Override public void run() { mListView.smoothScrollBy(-10, 10); handler.postDelayed(run_scroll_down, 10); } }; }
参考:http://www.bubuko.com/infodetail-656014.html
相关文章推荐
- c#提取
- 用Python读写Excel文件
- VS2010 C++ 操作Excel表格的编程实现
- POI读取Excel通用代码---支持2003,2007
- POI读取excel文件通用代码(增强版--支持返回javaBean集合)---2003,2007
- Java POI 操作excel 无硬编码,反射,史上最牛
- java jsp+servlet实现登录网页设计
- java打开程序或文件
- C++连接access数据库
- Java操作Excel之理解JXL--读取Excel
- java 汉字转换英文小写工具类
- Java操作Excel之理解JXL--读取Excel模板动态写入数据并生成Excel
- C/C++读写Excel表格文件
- asp+JMAIL实现发送邮件
- STL与泛型编程(第一周)
- Java中如何读写cookie
- ecshop在PHP 5.4以上版本各种错误问题处理
- c#反转
- spring-MVC配置问题
- 预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)