Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> ListView滑動不爽,滾動一頁得滑幾次?該用分頁列表啦!,listview不爽

ListView滑動不爽,滾動一頁得滑幾次?該用分頁列表啦!,listview不爽

編輯:關於android開發

ListView滑動不爽,滾動一頁得滑幾次?該用分頁列表啦!,listview不爽


ListView等滾動位置經常不符合用戶期望:

很多時候都是看完一頁想滑到下一頁,但滑動一次距離往往不是不夠就是超過,很難控制。

 

PagedListView工程中提供了PageScroller來解決這個問題。

使用PageScroller可以在 中低速滑動 後會滾動一頁,很慢滑動 或 很快滑動 則按默認處理。

 

使用方法如下:

1.初始化PageScroller

pageScroller = new PageScroller(lvListView);
pageScroller.init();

 

2.重寫dispatchTouchEvent方法

在Activity的dispatchTouchEvent方法內 pageScroller.dispatchTouchEvent(ev); 

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
     pageScroller.dispatchTouchEvent(ev);
     return super.dispatchTouchEvent(ev);
}

 

 

 

工程中還提供了幾個Demo,比如ListViewActivity

 1 package zuo.biao.pagedlistview;
 2 
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 
 6 import android.app.Activity;
 7 import android.os.Bundle;
 8 import android.view.MotionEvent;
 9 import android.widget.ArrayAdapter;
10 import android.widget.ListView;
11 
12 /**ListView示例
13  * @author Lemon
14  */
15 public class ListViewActivity extends Activity {
16 
17     private ListView lvListView;
18     private List<String> list;
19     private PageScroller pageScroller;
20     @Override
21     protected void onCreate(Bundle savedInstanceState) {
22         super.onCreate(savedInstanceState);
23         setContentView(R.layout.list_view_activity);
24         
25         lvListView = (ListView) findViewById(R.id.lvListView);
26 
27         list = new ArrayList<String>();
28         for (int i = 0; i < 100; i++) {
29             list.add("Item" + i);
30         }
31         
32         lvListView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list));
33         
34         pageScroller = new PageScroller(lvListView);
35         pageScroller.init();
36     }
37     
38     /**
39      * Fragment中沒有這個方法,可在Fragment內新建dispatchTouchEvent方法,
40      * 然後在添加Fragment的Activity中重寫dispatchTouchEvent方法,並在該方法內調用Fragment裡的dispatchTouchEvent方法,
41      * 即fragment.dispatchTouchEvent(ev);
42      */
43     @Override
44     public boolean dispatchTouchEvent(MotionEvent ev) {
45         pageScroller.dispatchTouchEvent(ev);
46         return super.dispatchTouchEvent(ev);
47     }
48 
49 }

 

 

下載地址(歡迎Star,歡迎Fork)

​https://github.com/TommyLemon/PagedListView

下載試用

PagedListView.apk

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved