如何样给ListView控件的Items填加下拉框

 我来答
聚发稿网
2016-08-08 · 知道合伙人生活技巧行家
聚发稿网
知道合伙人生活技巧行家
采纳数:5647 获赞数:29663
聚发稿网创始人,作家,笔名志耘誉松著《机械魔敌》《笑泪恋曲》

向TA提问 私信TA
展开全部
注意事项:1、XListView因为添加了Header,会导致存储的数据+1,所以赋值时需要position-1。补充:当去掉HeaderView时,position不用-1。2、提个建议:上拉加载,最好在onCreate()中就执行setAdapter,然后不论是空数据、还是有数据,只用更新适配器就行了。一、XListView1、下载gitHub的地址。或者从这儿下。2、用法导入图中的me.maxwin.view包提供了两个接口:IXListViewListener:触发下拉刷新,上拉加载。实现此接口时,onLoadMore()用来上拉加载,onRefresh()用来下拉刷新。OnXScrollListener:和原生的OnScrollListener一样,但是在header/footer回滚时也会触发。几个常用方法:setPullRefreshEnable(booleanenable):是否允许下拉刷新setPullLoadEnable(booleanenable):是否允许上拉加载stopRefresh():停止刷新,重置headerviewstopLoadMore():停止加载,重置footerview请求到数据后停止刷新停止加载。setRefreshTime(Stringtime):设置上次刷新的时间onLoadMore():加载时调用的方法。注意第一次进入时不会调用此方法。onRefresh():下拉刷新时调用的方法。3、代码中怎么体现1)实现IXListViewListener接口->2)实现上拉刷新和下拉加载的数据变更->3)更新headerview和footerview,并设置更新时间。[java]viewplaincopy//1、实现IXListViewListener接口mListView.setXListViewListener(this);//2.1onRefresh中实现下拉刷新的数据加载@OverridepublicvoidonRefresh(){//请求数据//更新界面显示[java]viewplaincopyonLoad();}//2.2onLoadMore中实现上拉加载的数据加载[java]viewplaincopy@OverridepublicvoidonLoadMore(){//请求数据//更新界面显示[java]viewplaincopyonLoad();}//3、加载完数据后,复位headerview和footerview,并设置更新的时间。[java]viewplaincopyprivatevoidonLoad(){mListView.stopRefresh();mListView.stopLoadMore();mListView.setRefreshTime("刚刚");}4、xml注意事项当将XListView嵌入到LinearLayout中时,XListView占满全屏时不能再加载。上错误代码:[java]viewplaincopy5、去ScrollView共用这种情况,重写XListView会导致上拉加载时频繁的报错:适配器未更新,不知道咋解决。二、PullToRefresh大部分内容转自鸿洋的博客:这里写上拉加载的任务newGetDataTask().execute();}});3、属性介绍1)ptr:ptrMode="both"支持上拉加载和下拉刷新。disabled禁用下拉刷新和上拉加载。pullFromEnd仅支持上拉加载。manualOnly只允许手动触发。当然通过代码也可设置:lv.setMode(Mode.BOTH);2)ptr:trAnimationStyle="flip"flip:翻转动画;rotate:旋转动画。3)ptr:ptrDrawable="@drawable/ic_launcher"设置图标4)ptrScrollingWhileRefreshingEnabled刷新的时候,是否允许ListView或GridView滚动。觉得为true比较好。5)ptrListViewExtrasEnabled决定了Header,Footer以何种方式加入mPullRefreshListView,true为headView方式加入,就是滚动时刷新头部会一起滚动。4、自定义下拉指示器文本内容等效果:在初始化完成PullToRefreshListView后,通过lv.getLoadingLayoutProxy()可得到一个ILoadingLayout对象,这个对象可设置各种指示器中的样式、文本等。[java]viewplaincopyILoadingLayoutstartLabels=mPullRefreshListView.getLoadingLayoutProxy();startLabels.setPullLabel("你可劲拉,拉");//刚下拉时,显示的提示startLabels.setRefreshingLabel("好嘞,正在刷新");//刷新时startLabels.setReleaseLabel("你敢放,我就敢刷新");//下来达到一定距离时,显示的提示默认是上拉和下拉的字同时改变的,如果希望单独改变呢:[java]viewplaincopyprivatevoidinitIndicator(){ILoadingLayoutstartLabels=mPullRefreshListView.getLoadingLayoutProxy(true,false);startLabels.setPullLabel("你可劲拉,拉");//刚下拉时,显示的提示startLabels.setRefreshingLabel("好嘞,正在刷新");//刷新时startLabels.setReleaseLabel("你敢放,我就敢刷新");//下来达到一定距离时,显示的提示ILoadingLayoutendLabels=mPullRefreshListView.getLoadingLayoutProxy(false,true);endLabels.setPullLabel("你可劲拉,拉2");//刚下拉时,显示的提示endLabels.setRefreshingLabel("好嘞,正在刷新2");//刷新时endLabels.setReleaseLabel("你敢放,我就敢刷新2");//下来达到一定距离时,显示的提示}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式