AndroidPullToRefresh拉动效果配置
最近用了 开源的 AndroidPullToRefresh 库,但是发现拉动时的效果有个很奇怪的地方,无论上下拉动,当列表滚动到顶部或底部时,会瞬间弹出半个列表高度的拉动提示,感觉很不舒服,这种提示根本没必要,太丑了,而且可能会导致一些奇怪的小问题,于是查看源码搞了半天终于知道怎么回事了。
不过话说这个库还是很有名气的,但是网上真正详细介绍他的几乎没有,中文资料也难找,也许大家在这上面遇到的问题不多吧~~
下面说说我的总结:
<?xml version="1.0" encoding="utf-8"?>
<com.handmark.pulltorefresh.library.PullToRefreshListView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ptr="http://schemas.android.com/apk/res-auto"
android:id="@+id/diaryListCt"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"
android:divider="@null"
android:dividerHeight="6dp"
android:headerDividersEnabled="true"
android:footerDividersEnabled="true"
android:fadingEdge="none"
android:cacheColorHint="@android:color/transparent"
ptr:ptrMode="both"
ptr:ptrOverScroll="true"
>
</com.handmark.pulltorefresh.library.PullToRefreshListView>
1. 设置上下拉两个事件:
在 XML 中
ptr:ptrMode="both"
在 Java 中
view.setMode(PullToRefreshBase.Mode.BOTH);
注册上下拉动的自定义事件
pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
ZLog.i(TAG, "OnRefreshListener2 onPullUpToRefresh");
diaryList.loadNext();
}
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> 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 多一点,但不要设置太大,导致高度过低这样会影响正常的拉动时显示的提示的高度
现就这么多,以后再继续补充吧~~
AndroidPullToRefresh拉动效果配置的更多相关文章
- android -------- 颜色的半透明效果配置
最近有朋友问我 Android 背景颜色的半透明效果配置,我网上看资料,总结了一下, 开发中也是常常遇到的,所以来写篇博客 常用的颜色值格式有: RGB ARGB RRGGBB AA ...
- android 控件各种颜色的半透明效果配置
格式: android:background="#XXxxxxxx"(颜色可以写在color中) 说明:半透明颜色值不同于平时使用的颜色,半透明颜色值共8位,前2位是透明度,后6位 ...
- iOS7之定制View Controller切换效果
在iOS5和iOS6前,View Controller的切换主要有4种: 1. Push/Pop,NavigationViewController常干的事儿 2. Tab,TabViewControl ...
- 将archlinux 2013-06-01版,安装配置为个人工作站
本文安装所使用的镜像为:archlinux-2013.06.01-dual.iso.首先请看看我安装完成之后的效果.图一,是第一个虚拟桌面及右键菜单图: 图二,是第二个虚拟桌面效果图.后几个虚拟桌面图 ...
- sharepoint 2013 列表和库标签 元数据导航配置(2)
接前面提到的,如何创建一个术语库.sharepoint 2013 列表和库标签 元数据导航配置(1), 现在要做的,就是如何在自定义或者文档库中使用这个术语库,实现标签功能,通过这些标签,找到对应的文 ...
- canvas三角函数模拟水波效果
.katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > ...
- log4j配置输出到多个日志文件
通常我们项目里,有一些重要的日志想单独的输出到指定的文件,而不是全总输出到系统的日志文件中.那么我们log4j为我们提供了这种功能,以下我们来一步一步看是怎么做的.这里以property的配置方式写. ...
- linux配置powerline(bash/vim)美化
安装powerline需要pip 链接:https://pan.baidu.com/s/1Jc59VD35PYic2fTK5v8h1w 密码:otfp pip curl https://bootstr ...
- [转]解决阿里云mysql不能连接,配置mysql远程连接
默认是不能用客户端远程连接的,阿里云提供的help.docx里面做了设置说明,mysql密码默认存放在/alidata/account.log 首先登录: mysql -u root -h local ...
随机推荐
- Identity
ThreadStatic应用(Identity补完) 关于Identity Identity自增序列/唯一断标识 起初做这个东西,是在一个内部组件中,用于在高并发的环境下得到一个较短的“相对”不重 ...
- Castle.DynamicProxy Part 1: ClassProxy
1.Castle中代理对象的分类 总的来说,代理对象大概可以分为2大类: 1.继承类型的代理对象 一类是继承类型的代理类.即:有一个类A,它的代理类是B.B是继承自A的.调用代理类B中的方法时,可以通 ...
- [转]How WebKit Loads a Web Page
ref:https://www.webkit.org/blog/1188/how-webkit-loads-a-web-page/ Before WebKit can render a web pag ...
- [置顶] WPF数据修改demo
今天晚上研究了下wpf,现在把代码贴出来供大家学习参考 sql语句: create table userinfos ( ContactID int primary key identity(1,1) ...
- 图解Javascript引用类型之数组
以图说事明理,恰当时候会事半功陪.今天我就尝试着用图的方式讲讲“JavaScript引用类型之数组”.望更多童鞋给我反馈! 好东西分享给大家,但要尊重事实!!!因此特别说明:本图非我本人亲自所作,乃我 ...
- IOS学习之路五(SpriteKit 开发飞机大战小游戏一)
参考SpriteKit 创建游戏的教程今天自己动手做了一下,现在记录一下自己怎么做的,今天之做了第一步,一共有三个部分. 第一步,项目搭建. 项目所用图片资源:点击打开链接 1.在Xcode打开之后, ...
- .net调用Outlook 批量发送邮件,可指定Outlook中的账号来发送邮件
.net调用Outlook 批量发送邮件,可指定Outlook中的账号来发送邮件 源码可以在我的资源列表中下载: MPOEMail http://download.csdn.net/my VS2012 ...
- Redis系统学习 一、基础知识
1.数据库 select 1 select 0 2.命令.关键字和值 redis不仅仅是一种简单的关键字-值型存储,从其核心概念来看,Redsi的5种数据结构中的每一个都至少有一个关键字和一个值.在 ...
- C#常用的数据格式转换
用DataFormatString格式化GridView 在 GridView里面显示数据,要显示的数据有好多位小数,就想让它只显示两位小数,在delphi里,直接用DisplayFormat就行了, ...
- Java-抽象类定义构造方法
abstract class A { public static final String INFO="hello world"; public String name=&qu ...