博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AndroidPullToRefresh拉动效果配置
阅读量:4972 次
发布时间: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

你可能感兴趣的文章
4.4---建立二叉树的链表
查看>>
从云原生看企业云的未来
查看>>
《高性能Linux服务器构建实战Ⅱ》热销中,附试读章节下载
查看>>
理解 RIPv1使用广播更新路由与RIPv2使用组播更新路由的区别
查看>>
linux svn服务器搭建、客户端操作、备份与恢复
查看>>
2017 未来架构师<设计思考> 翻转式课堂
查看>>
忘记管理员密码的补救办法
查看>>
PHP - 如何实现跨域
查看>>
PowerShell 多线程测试IP端口
查看>>
mysql表修复脚本
查看>>
实战mongodb3.06 Relica Sets+sharding集群
查看>>
关于自动化测试的思考
查看>>
Android Studio第三十六期 - 模块化Activity管理Fragment
查看>>
SaltStack安装配置与远程执行测试
查看>>
Android Studio第十五期 - 友盟统计集成
查看>>
Android内核开发:序
查看>>
部署tomcat负载均衡集群,实现节点之间内存中的Session共享。
查看>>
如何测试WEB应用程序防止SQL注入***
查看>>
TFS版本管理(八)
查看>>
【VMCloud云平台】SCO(五)制作流程(一)
查看>>