码迷,mamicode.com
首页 > 其他好文 > 详细

ListView滑动不爽,滚动一页得滑几次?该用分页列表啦!

时间:2016-06-25 00:49:37      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:

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

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

 

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

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

 

使用方法如下:

1.初始化PageScoller

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

 

2.重写dispatchTouchEvent方法

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

@Override
public 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 Lemon
14  */
15 public class ListViewActivity extends Activity {
16 
17     private ListView lvListView;
18     private List<String> list;
19     private PageScoller pageScoller;
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         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     @Override
44     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

ListView滑动不爽,滚动一页得滑几次?该用分页列表啦!

标签:

原文地址:http://www.cnblogs.com/tommylemon/p/5615566.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!