android通過代碼控制ListView上下滾動

來源:互聯網
上載者:User

標籤:android   listview   滾動   

本文將介紹一種通過代碼控制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 代碼控制上下移動



android通過代碼控制ListView上下滾動

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.