pulltorefresh.jslistview中有没有方法自动刷新

查看: 22303|回复: 32
请教关于很火的PullToRefreshListView下拉刷新控件Bug
该用户从未签到主题帖子e币
& && && && && &&&最近在用第三方下拉刷新控件,com.handmark.pulltorefresh.library.PullToRefreshListView,发现有一个bug。
& && &&&在listview头部添加大图imagview,在数据个数为0时,此时只有heardview ,下拉刷新在没有滚动到顶端就触发了刷新,
& && && &&&而且图片被截掉了一部分了,见下面效果图,求好心人给点建议,调了一下午也没啥结论。
Android-PullToRefresh地址:https://github.com/chrisbanes/Android-PullToRefresh
附件: 您需要
才可以下载或查看,没有帐号?
没金币怎么学习啊。。。。
该用户从未签到主题帖子e币
没金币怎么学习啊。。。。
我支持: 5 我反对: 1 有帮助: 5 给评点分&
签到天数: 99 天连续签到: 1 天[LV.6]常住居民II主题帖子e币
额& &没用过这个开源控件& &刚随便看了一下
里面有RefreshableView,headerLayout 和footerLayout 三个布局。
应该将你的list设置为RefreshableView,把你这张大图作为这个listview的headview,然后只有headerLayout不需要footerlayout的情况
但是不知道你的代码怎么写的,看这张图的情况应该是setPadding的值有问题,你可以在错误的显示情况下用hierarchyviewer查看一下布局,看看listview和headerLayout位置数据。
不光pading有问题,触发下拉刷新时机也是有问题的,不过我已经找到屏蔽bug的方法了,谢谢你。&
该用户从未签到主题帖子e币
应该将你的list设置为RefreshableView,把你这张大图作为这个listview的headview,然后只有headerLayout不需要footerlayout的情况
兄弟拷贝楼上的吧&
签到天数: 13 天连续签到: 1 天[LV.3]偶尔看看II主题帖子e币
是不是这张头部添加(addfootview或者addview(0,imageview))的图片位置和这个下拉刷新的view重叠了,或者根本就没有吧图片加入到listview中
签到天数: 13 天连续签到: 1 天[LV.3]偶尔看看II主题帖子e币
<div class=网站已改版,请使用新地址访问:
pulltorefresh 在android开发中,实现listview的下拉刷新功能。即当用手在屏幕上向下滑动时,可以刷 - Box 243万源代码下载- www.pudn.com
&文件名称: pulltorefresh& & [
& & & & &&]
&&所属分类:
&&开发工具: Java
&&文件大小: 20 KB
&&上传时间:
&&下载次数: 0
&&提 供 者:
&详细说明:在android开发中,实现listview的下拉刷新功能。即当用手在屏幕上向下滑动时,可以刷新所在的listview.-Realize the list drop-down refresh function.
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&pulltorefresh\PullToRefreshAdapterViewBase.java&&.............\PullToRefreshBase.java&&.............\PullToRefreshExpandableListView.java&&.............\PullToRefreshHorizontalScrollView.java&&.............\PullToRefreshListView.java&&pulltorefresh
&输入关键字,在本站243万海量源码库中尽情搜索:pulltorefreshlistview中有没有方法自动刷新_百度知道
pulltorefreshlistview中有没有方法自动刷新
我有更好的答案
ptlv.setRefreshing(true);这样就能自动展示加载界面你的意思是让他自动弹出加载框然后加载吗?ptlv.onRefreshComplete();ptlv.setCurrentModeRefreash()
采纳率:89%
来自团队:
好像没有哦~
为您推荐:
其他类似问题
自动刷新的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。2012年 总版技术专家分年内排行榜第一
2013年 总版技术专家分年内排行榜第七2011年 总版技术专家分年内排行榜第五2009年 总版技术专家分年内排行榜第九
本帖子已过去太久远了,不再提供回复功能。博客分类:
转 http://blog.csdn.net/mmjiajia132/article/details/
PullToRefreshListView 用法和ListView 没有什么区别
listview能用的属性 pulltorefresh也能用
我一直认为动手是最好的学习方法...
一:首先看布局文件
&?xml version="1.0" encoding="utf-8"?&
&LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" &
ptr:ptrAnimationStyle="flip"
rotate:旋转--&
ptr:ptrShowIndicator="true"
右上角 右下角出现箭头--&
&com.handmark.pulltorefresh.library.PullToRefreshListView
xmlns:ptr="http://schemas.android.com/apk/res-auto"
android:id="@+id/pullToRefresh"
android:layout_width="match_parent"
android:layout_height="wrap_content"
ptr:ptrDrawable="@drawable/default_ptr_flip"
ptr:ptrAnimationStyle="flip"
ptr:ptrHeaderBackground="#383838"
ptr:ptrHeaderTextColor="#FFFFFF"
&/LinearLayout&
ptr是pullToRefresh的配置属性 使用是需要添加 xmlns:ptr="http://schemas.android.com/apk/res-auto"
ptr:ptrDrawable=“” 上拉下拉图标ptr:ptrAnimationStyle=""
取值: flip:翻转 rotate旋转ptr:ptrHeaderBackground=""
上拉下拉时 头部的背景色ptr:ptrHeaderTextColor=""
上拉下拉时 文字颜色
还有一些常用属性
ptrRefreshableViewBackground 设置整个mPullRefreshListView的背景色
ptrScrollingWhileRefreshingEnabled刷新的时候,是否允许ListView或GridView滚动。觉得为true比较好。
ptrListViewExtrasEnabled 决定了Header,Footer以何种方式加入mPullRefreshListView,true为headView方式加入,就是滚动时刷新头部会一起滚动。
注:上述属性都可以代码添加,请用pullToRefresh.set查看
二:MainActivity代码
public class MainActivity extends ActionBarActivity {
private PullToRefreshListView pullToR
private List&PullBean& data = new ArrayList&PullBean&();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
pullToRefresh = (PullToRefreshListView) findViewById(R.id.pullToRefresh);
data = getData();
adapter = new MyAdapter(this);
pullToRefresh.setAdapter(adapter);
pullToRefresh.setMode(Mode.BOTH);
pullToRefresh.setOnRefreshListener(new OnRefreshListener2&ListView&(){
public void onPullDownToRefresh(
PullToRefreshBase&ListView& refreshView) {
PullBean bean = new PullBean();
bean.setTitle("下拉刷新");
bean.setContent("我的神");
adapter.addFirst(bean);
new FinishRefresh().execute();
adapter.notifyDataSetChanged();
public void onPullUpToRefresh(
PullToRefreshBase&ListView& refreshView) {
PullBean bean = new PullBean();
bean.setTitle("上拉刷新");
bean.setContent("我的神");
adapter.addLast(bean);
new FinishRefresh().execute();
adapter.notifyDataSetChanged();
private void init()
ILoadingLayout startLabels = pullToRefresh
.getLoadingLayoutProxy(true, false);
startLabels.setPullLabel("下拉刷新...");
startLabels.setRefreshingLabel("正在载入...");
startLabels.setReleaseLabel("放开刷新...");
ILoadingLayout endLabels = pullToRefresh.getLoadingLayoutProxy(
false, true);
endLabels.setPullLabel("上拉刷新...");
endLabels.setRefreshingLabel("正在载入...");
endLabels.setReleaseLabel("放开刷新...");
private List&PullBean& getData(){
List&PullBean& list = new ArrayList&PullBean&();
for(int i = 0;i & 10;i ++){
PullBean bean = new PullBean();
bean.setTitle("item " + i + " 搜索业务增速下滑 Google廉颇老矣?");
bean.setContent("Google于10月17日发布了2014年第三季度财报");
list.add(bean);
private class FinishRefresh extends AsyncTask&Void, Void, Void&{
protected Void doInBackground(Void... params) {
Thread.sleep(1000);
} catch (InterruptedException e) {
return null;
protected void onPostExecute(Void result){
pullToRefresh.onRefreshComplete();
private class MyAdapter extends BaseAdapter{
private LayoutInflater mI
public MyAdapter(Context context) {
mInflater = LayoutInflater.from(context);
public void addFirst(PullBean bean){
data.add(0, bean);
public void addLast(PullBean bean){
data.add(bean);
public int getCount() {
return data.size();
public Object getItem(int position) {
return data.get(position);
public long getItemId(int position) {
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder = null;
if(convertView == null){
viewHolder = new ViewHolder();
convertView = mInflater.inflate(R.layout.item, null);
viewHolder.title = (TextView) convertView.findViewById(R.id.title);
viewHolder.content = (TextView) convertView.findViewById(R.id.content);
convertView.setTag(viewHolder);
viewHolder = (ViewHolder) convertView.getTag();
viewHolder.title.setText(data.get(position).getTitle());
viewHolder.content.setText(data.get(position).getContent());
return convertV
class ViewHolder{
pullToRefresh适配器Adapter和listview也是继承于BaseAdapter 看一下item的布局
&?xml version="1.0" encoding="utf-8"?&
&LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="5dp"
android:orientation="vertical" &
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:textColor="#BA55D3"
android:text="我的神"/&
android:id="@+id/content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="14.0sp"
android:layout_marginTop="5dp"
android:textColor="#7CFC00"
android:text="我的神"/&
&/LinearLayout&
pullToRefresh 通过setMode来设置是否可以上拉下拉
Mode.BOTH:同时支持上拉下拉
Mode.PULL_FROM_START:只支持下拉Pulling Down
Mode.PULL_FROM_END:只支持上拉Pulling Up
也可以用 ptr:ptrMode="both"
可选值为:disabled(禁用下拉刷新),pullFromStart(仅支持下拉刷新),pullFromEnd(仅支持上拉刷新),both(二者都支持),manualOnly(只允许手动触发)
如果Mode设置成Mode.BOTH,需要设置刷新Listener为OnRefreshListener2,并实现onPullDownToRefresh()、onPullUpToRefresh()两个方法。
如果Mode设置成Mode.PULL_FROM_START或Mode.PULL_FROM_END,需要设置刷新Listener为OnRefreshListener,同时实现onRefresh()方法。
当然也可以设置为OnRefreshListener2,但是Mode.PULL_FROM_START的时候只调用onPullDownToRefresh()方法,Mode.PULL_FROM的时候只调用onPullUpToRefresh()方法.
如果想上拉、下拉刷新的时候 做一样的操作,那就用OnRefreshListener,上拉下拉的时候都调用
如果想上拉、下拉做不一样的的操作,那就在setOnRefreshListener时 用new OnRefreshListener2&ListView&
当然如果想自己设置上拉下拉中的文字 可以这样
ILoadingLayout startLabels = pullToRefresh
.getLoadingLayoutProxy(true, false);
startLabels.setPullLabel("下拉刷新...");
startLabels.setRefreshingLabel("正在载入...");
startLabels.setReleaseLabel("放开刷新...");
ILoadingLayout endLabels = pullToRefresh.getLoadingLayoutProxy(
false, true);
endLabels.setPullLabel("上拉刷新...");
endLabels.setRefreshingLabel("正在载入...");
endLabels.setReleaseLabel("放开刷新...");
当然也可以这样
pullToRefresh.getLoadingLayoutProxy(false, true)
.setPullLabel("上拉刷新...");
pullToRefresh.getLoadingLayoutProxy(false, true).setReleaseLabel(
"放开刷新...");
pullToRefresh.getLoadingLayoutProxy(false, true).setRefreshingLabel(
"正在加载...");
pullToRefresh.getLoadingLayoutProxy(true, false)
.setPullLabel("下拉刷新...");
pullToRefresh.getLoadingLayoutProxy(true, false).setReleaseLabel(
"放开刷新...");
pullToRefresh.getLoadingLayoutProxy(true, false).setRefreshingLabel(
"正在加载...");
显然在实际操作的时候也会用到其他监听
setOnScrollListener()
SCROLL_STATE_TOUCH_SCROLL 正在滚动
SCROLL_STATE_FLING 手指做了抛的动作(手指离开屏幕前,用力滑了一下)
SCROLL_STATE_IDLE 停止滚动
setOnLastItemVisibleListener
当用户拉到底时调用
setOnItemClickListener()
为pullToRefresh中每一个item设置事件
代码下载:
下拉上拉 图标和文字 位置改动是在PullToRefresh源代码中改的即:PullToRefreshListView.handleStyledAttributes 中lp的Gravity改为CENTER_VERTICAL
如果想要改动图标和文字的距离和布局 在这library项目下这两个文件改
pull_to_refresh_header_horizontal.xml
pull_to_refresh_header_vertical.xml
参考博客:
http://blog.csdn.net/lmj/article/details/
http://blog.csdn.net/harvic880925/article/details/
.怎么区分下拉/上拉
网上有的同学是用onScrollListener来判断,这样并不严谨,我依靠是header还是footer处于可见状态来区分下拉和上拉,如果是下拉,那header一定是可见的;反之,footer一定是可见的。
但是PullToRefreshExpandableListView并没有提供这样的接口,那我们就来小改一下我们引入的工程吧,很简单:
找到包“com.handmark.pulltorefresh.library”下的PullToRefreshAdapterViewBase.java这个类,加入两个新接口:
public boolean isHeaderShown() {
return getHeaderLayout().isShown();
public boolean isFooterShown() {
return getFooterLayout().isShown();
这样就行了哦,重新编译一下这个工程,和你自己的工程。
http://blog.csdn.net/ueryueryuery/article/details/在onRefresh()中这样来用:
public void onRefresh(PullToRefreshBase&ExpandableListView& refreshView) {
if (!isRefreshing) {
isRefreshing = true;
if (mExpandList.isHeaderShown()) {
Utils.LOGD("pull-to-refresh");
refreshOnlineStatus(true);
} else if (mExpandList.isFooterShown()) {
Utils.LOGD("pull-to-load-more");
loadNextPage();
mExpandList.onRefreshComplete();
很简单吧,这样我们就YD地使用PullToRefresh实现了下拉刷新和上拉加载,LOL,希望多多少少能帮到大家。
近来发现:
1.实现上拉监听,只需要实现OnRefreshListener2就可以了,同时别忘记setMode(Mode.BOTH) 哦!
2.PullToRefreshListView在使用上有一个BUG,在你的xml layout中,不能一开始将它的visiablity设置为GONE,否则,在代码中设置visiablity为VISIABLE也没有作用。
浏览: 356307 次
来自: 广州
以下是我写的一个同步非递归版本,放在 q-cmd 模块里面,欢 ...
为什么这么垃圾呢
DRELi 写道现在你应该解决了吧~
我也遇到过,不过当时我 ...
现在你应该解决了吧~
我也遇到过,不过当时我用的是java. ...
不行不行不行
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'}

我要回帖

更多关于 mui.pulltorefresh.js 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信