Android通過(guò)代碼控制ListView上下滾動(dòng)的方法
本文將介紹一種通過(guò)代碼控制ListView上下滾動(dòng)的方法。
先上圖:
按下按鈕會(huì)觸發(fā)ListView滾動(dòng)或停止。
實(shí)現(xiàn)該功能并不難,下面給出主要代碼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; // 三個(gè)按鈕 private ListView listview; private Adapter adapter; @Override public 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); } @Override public 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() { @Override public void handleMessage(Message msg) { handler.removeCallbacks(run_scroll_down); handler.removeCallbacks(run_scroll_up); } }; /** * 向上滾動(dòng) */ public void listScrollUp() { listScrollOff(); handler.postDelayed(run_scroll_up, 0); } /** * 向下滾動(dòng) */ public void listScrollDown() { listScrollOff(); handler.postDelayed(run_scroll_down, 0); } /** * 停止?jié)L動(dòng) */ public void listScrollOff() { handler.removeCallbacks(run_scroll_down); handler.removeCallbacks(run_scroll_up); } Runnable run_scroll_up = new Runnable() { @Override public 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() { @Override public void run() { listview.smoothScrollBy(-1, 10); handler.postDelayed(run_scroll_down, 10); } }; }
實(shí)現(xiàn)ListView位置變動(dòng)的是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.
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- Android ListView和Adapter數(shù)據(jù)適配器的簡(jiǎn)單介紹
- 詳解xamarin Android 實(shí)現(xiàn)ListView萬(wàn)能適配器
- Android ListView適配器(Adapter)優(yōu)化方法詳解
- Android ListView萬(wàn)能適配器實(shí)例代碼
- Android巧用XListView實(shí)現(xiàn)萬(wàn)能下拉刷新控件
- android使用flutter的ListView實(shí)現(xiàn)滾動(dòng)列表的示例代碼
- Android自定義控件ListView下拉刷新的代碼
- MVPXlistView展示上拉下拉效果
- Android解決ScrollView下嵌套ListView和GridView中內(nèi)容顯示不全的問(wèn)題
- ListView通用泛型適配器
相關(guān)文章
Android ActivityManagerService啟動(dòng)流程詳解
這篇文章主要介紹了Android ActivityManagerService啟動(dòng)流程,AMS,即ActivityManagerService,是安卓java framework的一個(gè)服務(wù),運(yùn)行在system_server進(jìn)程。此服務(wù)十分重要,因?yàn)樗芾碇沧康乃拇蠼M件,是安卓APP開(kāi)發(fā)者最常接觸到的一個(gè)服務(wù)2023-02-02基于Android10渲染Surface的創(chuàng)建過(guò)程
這篇文章主要介紹了基于Android10渲染Surface的創(chuàng)建過(guò)程,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08Jetpack?Compose?Canvas繪制超詳細(xì)介紹
Canvas?是允許您在屏幕上指定區(qū)域并在此區(qū)域上執(zhí)行繪制的組件。您必須使用修飾符指定尺寸,無(wú)論是通過(guò)Modifier.size修飾符指定確切尺寸,還是通過(guò)Modifier.fillMaxSize,ColumnScope.weight等相對(duì)于父級(jí)指定精確尺寸。如果父級(jí)包裝了此子級(jí),則僅必須指定確切尺寸2022-10-10Android中Volley框架進(jìn)行請(qǐng)求網(wǎng)絡(luò)數(shù)據(jù)的使用
這篇文章主要介紹了Android中Volley框架進(jìn)行請(qǐng)求網(wǎng)絡(luò)數(shù)據(jù)的使用,本文給大家介紹的非常詳細(xì)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10Flutter?Widget之NavigationBar使用詳解
這篇文章主要為大家介紹了Flutter?Widget之NavigationBar使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12功能強(qiáng)大的Android滾動(dòng)控件RecyclerView
這篇文章主要為大家詳細(xì)介紹了功能強(qiáng)大的Android滾動(dòng)控件RecyclerView,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08Android activity動(dòng)畫(huà)不生效原因及解決方案總結(jié)
android activity動(dòng)畫(huà)是一個(gè)比較簡(jiǎn)單的功能。但是使用時(shí)總會(huì)由于各種小問(wèn)題導(dǎo)致動(dòng)畫(huà)失效,筆者根據(jù)自己經(jīng)驗(yàn),整理了各種可能導(dǎo)致的原因,期望能對(duì)你有所幫助2021-11-11