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

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

时间: 2024-10-17 15:19:42

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

★android开发--ListView+Json+异步网络图片加载+滚动翻页的例子(图片能缓存,图片不错乱)

例子中用于解析Json的Gson请自己Google下载 主Activity: package COM.Example.Main; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Map; import COM.Example.Main.R; import COM.Example.Main.stringG

Android - ListView 滑动载入下页数据 Scroll设定

Android - ListView 下滑载入新数据 遇到问题,过去的下滑载入功能很差,不知道原因. 试了半天终于试出来了. 觉得这个方法比较符合使用者体验的感觉, 不会感觉上视觉有跳动的感觉,而是很直直的载入,很顺. 以下是我设定的onScrollListener private OnScrollListener scrollListener = new OnScrollListener() { @Override public void onScroll(AbsListView view,

[Android Pro] 精确记录和恢复ListView滑动位置

reference to : http://blog.csdn.net/welovesunflower/article/details/7926512 工作中遇到一个需求,对ListView某一项操作后刷新ListView,但是如果直接刷新,界面上ListView从第一列开始显示,用户体验不好,于是在网上搜了一些恢复LIstView滑动位置的方法.解决办法如下: 1 : // 设置ListView到记录的位置 mListView.setSelection(mPosition); mListVie

Android ListView滑动过程中图片显示重复错乱闪烁问题解决

转自:http://www.oschina.net/question/221817_121051 主要分析Android ListView滚动过程中图片显示重复.错乱.闪烁的原因及解决方法,顺带提及ListView的缓存机制.1.原因分析ListView item缓存机制:为了使得性能更优,ListView会缓存行item(某行对应的View).ListView通过adapter的getView函数获得每行的item.滑动过程中, a. 如果某行item已经滑出屏幕,若该item不在缓存内,则p

Android ListView滑动过程中图片显示重复错位闪烁问题解决[转载]

转自:here 主要分析Android ListView滚动过程中图片显示重复.错乱.闪烁的原因及解决方法,顺带提及ListView的缓存机制.1.原因分析ListView item缓存机制:为了使得性能更优,ListView会缓存行item(某行对应的View).ListView通过adapter的getView函数获得每行的item.滑动过程中, a. 如果某行item已经滑出屏幕,若该item不在缓存内,则put进缓存,否则更新缓存:b. 获取滑入屏幕的行item之前会先判断缓存中是否有可

android listview 滑动过程中不加载图片,停止时加载图片

今天闲来无事, 就测试了一下listview加载图片优化的功能, 在我们使用新浪微博的时候,细心的同学一定发现了,在滑动的过程中,图片是没有被加载的, 而是在滑动停止时,才加载图片了. 我们今天就做一个这样的效果吧. 我们先考虑两个问题: 1.在滑动停止的时候,如何获得需要加载的图片控件? 2.因为listiew在初始化完成的时候,OnScrollListener的onScrollStateChanged与onScroll并未被触发,如何初始化第一页的图片? package com.test.l

Android中ListView滑动时数据混乱

相信做过Android应用开发的或多或少的都遇到过这样的问题,要不就是在ListView滑动时出现数据混乱,或者是GridView滑动时出现数据混乱.先来看看一位网友写的文章,个人感觉这篇文章挺不错的: Android ListView滑动过程中图片显示重复错位闪烁问题解决 主要分析Android ListView滚动过程中图片显示重复.错乱.闪烁的原因及解决方法,顺带提及ListView的缓存机制. 1.原因分析 ListView item缓存机制:为了使得性能更优,ListView会缓存行i

在UITableView中识别作用滑动,实现上下翻页的功能

目前有三种方案: 1. UIScrollView + UITableView. 实现方法,在UIScrollView中,加入UITableView即可 设置UIScrollView的代理和方法 - (void)scrollViewDidScroll:(UIScrollView *)scrollView{ int currentPostion = scrollView.contentOffset.x; if (currentPostion - 0 > 50) { NSLog(@"Scroll

UITableView中识别左右滑动,实现上下翻页的功能

目前有三种方案: 1. UIScrollView + UITableView. 实现方法,在UIScrollView中,加入UITableView即可 设置UIScrollView的代理和方法 - (void)scrollViewDidScroll:(UIScrollView *)scrollView{ int currentPostion = scrollView.contentOffset.x; if (currentPostion - 0 > 50) { NSLog(@"Scroll