Android通過代碼控制ListView上下滾動的方法
本文將介紹一種通過代碼控制ListView上下滾動的方法。
先上圖:

按下按鈕會觸發(fā)ListView滾動或停止。
實現(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; // 三個按鈕
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);
}
};
/**
* 向上滾動
*/
public void listScrollUp() {
listScrollOff();
handler.postDelayed(run_scroll_up, 0);
}
/**
* 向下滾動
*/
public void listScrollDown() {
listScrollOff();
handler.postDelayed(run_scroll_down, 0);
}
/**
* 停止?jié)L動
*/
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);
}
};
}
實現(xiàn)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.
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
- Android ListView和Adapter數(shù)據(jù)適配器的簡單介紹
- 詳解xamarin Android 實現(xiàn)ListView萬能適配器
- Android ListView適配器(Adapter)優(yōu)化方法詳解
- Android ListView萬能適配器實例代碼
- Android巧用XListView實現(xiàn)萬能下拉刷新控件
- android使用flutter的ListView實現(xiàn)滾動列表的示例代碼
- Android自定義控件ListView下拉刷新的代碼
- MVPXlistView展示上拉下拉效果
- Android解決ScrollView下嵌套ListView和GridView中內(nèi)容顯示不全的問題
- ListView通用泛型適配器
相關(guān)文章
android studio 安裝完成ButterKnife插件卻無法使用(解決方案)
這篇文章主要介紹了android studio 安裝完成ButterKnife插件卻無法使用問題,本文通過圖文并茂的形式給大家分享解決方法,對大家有非常好的幫助,需要的朋友可以參考下2020-03-03
Android編程中Intent實現(xiàn)頁面跳轉(zhuǎn)功能詳解
這篇文章主要介紹了Android編程中Intent實現(xiàn)頁面跳轉(zhuǎn)功能,結(jié)合實例形式分析了Android Intent實現(xiàn)頁面跳轉(zhuǎn)功能的具體步驟與相關(guān)注意事項,需要的朋友可以參考下2017-07-07
Android自定義ViewPagerIndicator實現(xiàn)炫酷導(dǎo)航欄指示器(ViewPager+Fragment)
這篇文章主要為大家詳細(xì)介紹了Android自定義ViewPagerIndicator實現(xiàn)炫酷導(dǎo)航欄指示器,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-02-02
Android Bitmap和Drawable相互轉(zhuǎn)換的簡單代碼
Android Bitmap和Drawable相互轉(zhuǎn)換的簡單代碼,需要的朋友可以參考一下2013-05-05
Android實現(xiàn)四級聯(lián)動地址選擇器
這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)四級聯(lián)動地址選擇器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-10-10
Android實戰(zhàn)教程第六篇之一鍵鎖屏應(yīng)用問題解決
這篇文章主要為大家詳細(xì)介紹了Android一鍵鎖屏應(yīng)用開發(fā)過程中出現(xiàn)問題的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11
Android應(yīng)用中使用ContentProvider掃描本地圖片并顯示
這篇文章主要介紹了Android應(yīng)用中使用ContentProvider掃描本地圖片并顯示的方法,比調(diào)用本地圖庫的方法更加靈活和可定制,需要的朋友可以參考下2016-04-04

