PullToRefreshGridView 带下拉刷新,上拉加载的GridView控件

下载地址:https://github.com/chrisbanes/Android-PullToRefresh

下载解压后,导入解压包中的extras项目

xml:

<span style="font-size:18px;"><com.handmark.pulltorefresh.library.PullToRefreshGridView
            android:id="@+id/gvList"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:horizontalSpacing="5dp"
             android:verticalSpacing="5dp"
             android:layout_margin="5dp"
            android:numColumns="2" /></span>

注:高度一定要设置match_parent,否则高度不够,会渲染不出来,到时候自定义适配器中的getview()的position会一直为0

注:一定不能在xml中设置不可见。否则就算在Java中设置可见也显示不出来,可以在需要的地方Java设置不可见。

<span style="font-family:SimSun;font-size:18px;">private PullToRefreshGridView  gvList;</span>

private CommodityFiltrateGridViewAdapter mAdapter;

gvList = (PullToRefreshGridView ) findViewById(R.id.gvList);mAdapter = new CommodityFiltrateGridViewAdapter(this);

protected void setGridView() {


		initIndicator();
		gvList.setAdapter(mAdapter);
		gvList.setMode(Mode.BOTH);//能下拉刷新和上拉加载
		gvList.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) {
				//在这里执行PullToRefreshGridView的点击item后要做的事
			}
		});
		gvList.setOnRefreshListener(new OnRefreshListener2<GridView>(){
			   @Override
               public void onPullDownToRefresh(
                       PullToRefreshBase<GridView> refreshView)
               {
//				   Log.e("TAG", "onPullDownToRefresh");//下拉刷新
				   pageindex = 1;
				   getData_GridView(pageindex);//异步获取数据
               }  

               @Override
               public void onPullUpToRefresh(PullToRefreshBase<GridView> refreshView)
               {
//                   Log.e("TAG", "onPullUpToRefresh"); // 上拉加载
                   pageindex++;
                   getData_GridView(pageindex);//异步获取数据

               }
		});
	}
	private void initIndicator()
    {
        ILoadingLayout startLabels = gvList
                .getLoadingLayoutProxy(true, false);
        startLabels.setPullLabel("下拉刷新...");// 刚下拉时,显示的提示
        startLabels.setRefreshingLabel("刷新中...");// 刷新时
        startLabels.setReleaseLabel("松开刷新数据...");// 下来达到一定距离时,显示的提示  

        ILoadingLayout endLabels = gvList.getLoadingLayoutProxy(
                false, true);
        endLabels.setPullLabel("上拉加载...");// 刚下拉时,显示的提示
        endLabels.setRefreshingLabel("加载中...");// 刷新时
        endLabels.setReleaseLabel("松开加载数据...");// 下来达到一定距离时,显示的提示
    } 
protected void getData_GridView(final int page) {
//这里是使用异步加载数据操作
<span style="font-family: Arial, Helvetica, sans-serif;">gvList.onRefreshComplete();</span>//加载完成后,设置刷新完成!</span>
	}

注:当上拉没有新数据时,执行:gvList.setMode(Mode.PULL_DOWN_TO_REFRESH); 表示只能下拉刷新

注:列表滑动到指定位置:gvList.getRefreshableView().setSelection(count);

时间: 2024-11-09 11:03:17

PullToRefreshGridView 带下拉刷新,上拉加载的GridView控件的相关文章

最新Android ListView 下拉刷新 上滑加载

开发项目过程中基本都会用到listView的下拉刷新和上滑加载更多,之前大家最常用的应该是pull to refresh或它的变种版吧,google官方在最新的android.support.v4包中增加了一个新类SwipeRefreshLayout,地址 这个类的作用就是提供官方的下拉刷新,并且效果相当不错,而上拉加载更多则用我们自定义的listview,也是相当简单. 下拉刷新 简单的介绍下: 首先它是一个viewgroup,但是它只允许有一个子控件,子控件能是任何view,使用的时候,所在

十分钟实现ListView下拉刷新上滑加载更多

说到ListView下拉刷新几乎每个APP都会用到,所以ListView下拉刷新是很重要的,就像ListView优化一样是你必会的东西. ListView实现下拉刷新如果我们开发人员自己编写相对来说比较费事的,当我们使用第三方库之后我们再来开发这个功能就会省事很多.相比与自己实现可以少编写不少代码,Android-PullToRefresh库可以轻松实现ListView的下拉刷新功能. 要使用Android—PullToRefesh库对ListView实现下拉刷新要经过以下几个步骤: 1.下载A

Android 下拉刷新上啦加载SmartRefreshLayout + RecyclerView

在弄android刷新的时候,可算是耗费了一番功夫,最后发觉有现成的控件,并且非常好用,这里记录一下. 原文是 https://blog.csdn.net/huangxin112/article/details/78781682 ,这里是看了之后,结合自己实际遇到的问题写的. 首先引入包. //下拉框 implementation 'com.android.support:recyclerview-v7:28.0.0-beta01' implementation 'com.scwang.smar

带你实现开发者头条APP(五)--RecyclerView下拉刷新上拉加载

转载请注明出处:http://blog.csdn.net/lowprofile_coding/article/details/51321896 一 .前言 最近实在太忙,一个多礼拜没有更新文章了,于是今晚加班加点把demo写出来,现在都12点了才开始写文章. 1.我们的目标 把RecyclerView下拉刷新上拉加载更多加入到我们的开发者头条APP中. 2.效果图 3.实现步骤 找一个带上拉刷新下载加载更多的RecyclerView开源库,我们要站在巨人的肩膀上 下载下来自己先运行下demo,然

ListView的下拉刷新上拉加载以及带列的横向滚动

相信有很人做的项目估计都用的到这个.就是ListView的下拉刷新上拉加载还有就是列的横向滚动; PS:横向滚动带表头与固定列(相信蛮多人都有这样的需求吧?就是在ListView上支持很多列,然而设备屏幕宽度有限) PS:这是我个人在网上找的两个示例demo结合而成的一个示例demo,还可以继续拓展,后续有时间就会更新,大家互相学习 ListView下拉刷新上拉加载示例demo原文出处: http://blog.csdn.net/limb99/article/details/18901513 L

Maxwin-z/XListView-Android(下拉刷新上拉加载)源码解析(一)

本次解析的内容,是github上一个用于下拉刷新上拉加载的控件xlistview,这个功能相信大家在开发的过程中会经常用到. 控件的源码地址是https://github.com/Maxwin-z/XListView-Android 在这个控件之前,我看过一些相同功能的控件,挑选后觉得XListView功能比较完善,而且易于理解.在android-open-project里面,有提到一个DropDownListView,个人使用过以后,觉得功能是具备了,但是操作体验不好,原因就是没有使用到Scr

Android-PullToRefresh下拉刷新,上拉加载的使用详解

哎,最近事真的是多.没有坚持写博客虽然写得差,但还是得坚持写嘛!废话不多说,进入今天的主题. 在Android开发中下拉刷新,上拉加载这个功能是一般商业应用的App中必不可少的一个功能效果.但是对于新手来说,自定义下拉刷新的ListView可能还是会遇到很多的问题.而对于要快速开发的公司来说,可能时间又比较紧张.那么这时候我们就要用到一个开源控件Android-PullToRefresh了.这个开源控件是一款非常优秀的开源控件,可以直接从Github上下载下来直接使用.下载链接地址:https:

android 安卓 listview 支持下拉刷新 上拉加载更多

[1]重写listView import java.text.SimpleDateFormat; import java.util.Date; import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.ViewGrou

Android 下拉刷新上拉加载 多种应用场景 超级大放送(上)

转载请标明原文地址:http://blog.csdn.net/yalinfendou/article/details/47707017 关于Android下拉刷新上拉加载,网上的Demo太多太多了,这里不是介绍怎么去实现下拉刷新上拉加载,而是针对下拉刷新上拉加载常用的一些应用场景就行了一些总结,包含了下拉刷新上拉加载过程中遇到的一些手势冲突问题的解决方法(只能算是抛砖引玉). 去年9月的时候,那时自己正在独立做Android项目.记得刚刚写完那个ListView列表页面(木有下拉刷新,上拉加载)