博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AndroidPullToRefresh拉动效果配置
阅读量:4970 次
发布时间:2019-06-12

本文共 1736 字,大约阅读时间需要 5 分钟。

最近用了 开源的 AndroidPullToRefresh 库,但是发现拉动时的效果有个很奇怪的地方,无论上下拉动,当列表滚动到顶部或底部时,会瞬间弹出半个列表高度的拉动提示,感觉很不舒服,这种提示根本没必要,太丑了,而且可能会导致一些奇怪的小问题,于是查看源码搞了半天终于知道怎么回事了。

不过话说这个库还是很有名气的,但是网上真正详细介绍他的几乎没有,中文资料也难找,也许大家在这上面遇到的问题不多吧~~

下面说说我的总结:

1. 设置上下拉两个事件:

在 XML 中

ptr:ptrMode="both"
在 Java 中

view.setMode(PullToRefreshBase.Mode.BOTH);
注册上下拉动的自定义事件

pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2
() { @Override public void onPullUpToRefresh(PullToRefreshBase
refreshView) { ZLog.i(TAG, "OnRefreshListener2 onPullUpToRefresh"); diaryList.loadNext(); } @Override public void onPullDownToRefresh(PullToRefreshBase
refreshView) { ZLog.i(TAG, "OnRefreshListener2 onPullDownToRefresh"); refreshView.onRefreshComplete(); }});
这里使用的是 PullToRefreshBase.OnRefreshListener2<ListView>() 接口

若是只有一个方向则把 2 字去掉使用 PullToRefreshBase.OnRefreshListener<ListView>() 接口

一般下拉触发事件后会进行一些加载之类的动作,当你的逻辑处理完成后需要回调:onRefreshComplete(); 方法,表示当前事件已完全结束,此时拉动加载中的提示才会消失。

提示:

这里有个需要注意的地方,如果使用的是 ListView 的拉动效果则该布局产生的对象本省并不是 ListView ,而是程序内部动态生成了一个 ListView 实例,若要获取真正的 ListView 对象则需要使用一个方法来获取

ListView listView = pullTorefreshView.getRefreshableView();

2. 去除滚动到顶部或底部时弹出拉动加载更多的提示窗口

主要是我自己觉得不太好看,要解决这个问题有两个办法:不显示 | 缩短高度 或 横向时的宽度

看了半天源码之后才发现其方法的具体作用,老外的东西只看方法名很多时候搞不清楚究竟是干嘛用的,

ptr:ptrOverScroll="false"
view.setPullToRefreshOverScrollEnabled(false);
上面是通过 xml 配置 和 java 中的配置方法,当设置为 false 时就不会再弹出那个提示了

缩短提示框的方法:

在库文件 PullToRefreshBase.java 中有个常量设置

此处代码:

static final float FRICTION = 2.0f;
其中 2.0f 表示弹出框的高度为ListView 是屏幕上的可视区域高度的一半,即 screenHeight / 2,是按照一个比例来的,你可以增大这个值,设置为 5 则是 屏幕的 1/5 多一点,但不要设置太大,导致高度过低这样会影响正常的拉动时显示的提示的高度

现就这么多,以后再继续补充吧~~

转载于:https://www.cnblogs.com/zhouzme/p/5758457.html

你可能感兴趣的文章
Spring web flow的意义
查看>>
python面向对象编程基本规则
查看>>
Yii 2.x html 代码压缩
查看>>
文本编辑器激活系列(二):UltraEdit安装、激活、汉化教程
查看>>
安装redhat6.5虚拟机、做快照
查看>>
C#使用SqlServer
查看>>
分牛问题
查看>>
Ubuntu+IntelliJ IDEA+Android 配置NDK环境+openCV
查看>>
oozie bundle学习笔记
查看>>
会报编译器警告的Xcode 6.3新特性:Nullability Annotations
查看>>
Django 二
查看>>
Spring框架学习(三):Spring容器
查看>>
node安装包
查看>>
IOS crash分析
查看>>
java基础笔记(8)----接口
查看>>
前端和后端的区别和分工
查看>>
uva 10304
查看>>
bzoj2729 [HNOI2012]排队
查看>>
python 图像处理
查看>>
教你写Makefile(很全,含有工作经验的)
查看>>