你的位置:首页 > 操作系统

[操作系统]ListView滑动不爽,滚动一页得滑几次?该用分页列表啦!


ListView等滚动位置经常不符合用户期望:

很多时候都是看完一页想滑到下一页,但滑动一次距离往往不是不够就是超过,很难控制。

 

PagedListView工程中提供了PageScoller来解决这个问题。

使用PageScoller可以在 中低速滑动 后会滚动一页,很慢滑动 或 很快滑动 则按默认处理。

 

使用方法如下:

1.初始化PageScoller

pageScoller = new PageScoller(listView);pageScoller.init();

 

2.重写dispatchTouchEvent方法

在Activity的dispatchTouchEvent方法内 pageScoller.dispatchTouchEvent(ev); 具体如下:

@Overridepublic boolean dispatchTouchEvent(MotionEvent ev) {   pageScoller.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 PageScoller pageScoller;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     pageScoller = new PageScoller(lvListView);35     pageScoller.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     pageScoller.dispatchTouchEvent(ev);46     return super.dispatchTouchEvent(ev);47   }48 49 }

 

 

下载地址(欢迎Star,欢迎Fork)

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

下载试用

PagedListView.apk