本文将介绍一种通过代码控制ListView上下滚动的方法。

先上图:


按下按钮会触发ListView滚动或停止。


实现该功能并不难,下面给出主要代码MainActivity.java

package cn.guet.levide;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ListView;public class MainActivity extends Activity implements OnClickListener {private Button btn_up, btn_down, btn_stop; // 三个按钮private ListView listview;private Adapter adapter;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);findBy();init();}private void init() {btn_up.setOnClickListener(this);btn_down.setOnClickListener(this);btn_stop.setOnClickListener(this);adapter = new Adapter(this);listview.setAdapter(adapter);}private void findBy() {btn_up = (Button) findViewById(R.id.btn_scroll_up);btn_down = (Button) findViewById(R.id.btn_scroll_down);btn_stop = (Button) findViewById(R.id.btn_scroll_stop);listview = (ListView) findViewById(R.id.listview);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.btn_scroll_down:listScrollDown();break;case R.id.btn_scroll_up:listScrollUp();break;case R.id.btn_scroll_stop:listScrollOff();break;}}Handler handler = new Handler() {@Overridepublic 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);}Runnable run_scroll_up = new Runnable() {@Overridepublic void run() {/** * public void smoothScrollBy (int distance, int duration)  *  * Added in API level 8 Smoothly scroll by distance pixels over duration milliseconds. *  * Parameters  *     distance Distance to scroll in pixels. *     duration Duration of the scroll animation in milliseconds. */listview.smoothScrollBy(1, 10);handler.postDelayed(run_scroll_up, 10);}};Runnable run_scroll_down = new Runnable() {@Overridepublic void run() {listview.smoothScrollBy(-1, 10);handler.postDelayed(run_scroll_down, 10);}};}

实现ListView位置变动的是smoothScrollBy方法。

public void smoothScrollBy (int distance, int duration)     Smoothly scroll by distance pixels over duration milliseconds.Parameters    distance  Distance to scroll in pixels.     duration  Duration of the scroll animation in milliseconds.  

工程源码:

Android listview 代码控制上下移动



更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. [Android]文件操作模式与SDCard读写访问
  3. Android中的SystemClock类
  4. Android周笔记(9.8-14)(持续更新)
  5. Android(安卓)Service之串行化Service:IntentService(系列3)
  6. Android使用libgdx实现模拟方向键控制角色移动的方法
  7. Android(安卓)UI 之 ListView
  8. Android中Drawable Bitmap Canvas Paint之间区别
  9. ADT Plugin for Eclipse(Android开发工具) 20.0.3 官方最新版

随机推荐

  1. 总结EditText,TextView使用的点点滴滴
  2. android 如何绕过签名校验
  3. Android 字体和颜色
  4. html5 video自动播放-Android、IOS video
  5. Qt for Android获取手机热点开关状态
  6. Android 中使用自定义字体的方法
  7. Android基础————UI布局之高级控件详
  8. 在LinearLayout中嵌套RelativeLayout来设
  9. android ble connect slowly
  10. Android之查看外部依赖jar的源码