ListView滑動不爽,滾動一頁得滑幾次?該用分頁列表啦!,listview不爽
ListView等滾動位置經常不符合使用者期望:
很多時候都是看完一頁想滑到下一頁,但滑動一次距離往往不是不夠就是超過,很難控制。
PagedListView工程中提供了PageScroller來解決這個問題。
使用PageScroller可以在 中低速滑動 後會滾動一頁,很慢滑動 或 很快滑動 則按預設處理。
使用方法如下:
1.初始化PageScroller
pageScroller = new PageScroller(lvListView);pageScroller.init();
2.重寫dispatchTouchEvent方法
在Activity的dispatchTouchEvent方法內 pageScroller.dispatchTouchEvent(ev);
@Overridepublic 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 Lemon14 */15 public class ListViewActivity extends Activity {16 17 private ListView lvListView;18 private List<String> list;19 private PageScroller pageScroller;20 @Override21 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 @Override44 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