PullToRefresh

PullToRefresh

2017/10/18 10:16:13


下载

git clone https://github.com/chrisbanes/Android-PullToRefresh.git

使用

  1. 复制Library到没有中文的路径
  2. 重命名
  3. Android Studio 导入Module

步骤

  • 下载解压

  • 放到本地没有中文的路径并且重命名

-Android Studio 选择导入Moudle

  • 选择路径

  • finish

  • 错误 点击蓝色文字安装

  • 下载中

  • 下载完成

  • 结构

  • 选择Project Structure

  • 添加Moudle为依赖

  • ok

  • 可以看到已经添加Moulder为依赖

类说明

PullToRefreshListView

  • 可以刷新的listView控件,间接继承了LinearLayout,是一个自定义的listView

PullToRefreshGridView

  • 可以刷新的GridView控件

PullToRefreshExpandableListView

  • 可以刷新的二级列表控件

PullToRefreshScrollView

  • 可以刷新的ScrollView控件

PullToRefreshWebView

  • 可以刷新的WebView控件

属性详解

  • PullToRefreshListView

    ptr:ptrDrawable 是指定刷新时显示的图片
    ptr:ptrAnimationStyle 指定刷新的图片以何种方式显示出来,
    ptr:ptrHeaderBackground 指定刷新时头部的背景,
    ptr:ptrHeaderTextColor 指定刷新时头部字体的颜色
    ptr:ptrHeaderBackground 刷新的背景颜色
    

案例

主要代码

private ILoadingLayout startLabels;

//设置刷新模式
//设置pullToRefreshListView的刷新模式
//BOTH代表支持上拉和下拉
//PULL_FROM_END代表上拉
//PULL_FROM_START代表下拉 
pull_refresh_list.setMode(PullToRefreshBase.Mode.BOTH);

//通过getLoadingLayoutProxy 方法来指定上拉和下拉时显示的状态的区别(也就是设置向下拉的时候头部里面显示的文字)
//此时这里设置的是下拉刷新的时候显示的文字,所以第一个设置true表示现在是刷新,第二个设置为false
startLabels = pull_refresh_list.getLoadingLayoutProxy(true, false);
startLabels.setPullLabel("下拉刷新");
startLabels.setRefreshingLabel("正在刷新...");
startLabels.setReleaseLabel("放开刷新");

ILoadingLayout endLabels = pull_refresh_list.getLoadingLayoutProxy(false, true);
endLabels.setPullLabel("上拉刷新");
endLabels.setRefreshingLabel("正在载入...");
endLabels.setReleaseLabel("放开刷新...");


//设置刷新的时间....
startLabels.setLastUpdatedLabel("上次更新时间:" + new SimpleDateFormat("HH:mm").format(new Date(System.currentTimeMillis())));//last最近的,最后一次update修改/更新

//停止刷新
pull_refresh_list.onRefreshComplete();

带轮播图刷新

布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ptr="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">


    <com.handmark.pulltorefresh.library.PullToRefreshScrollView
        android:id="@+id/pullToRefreshScrollView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        ptr:ptrAnimationStyle="flip"
        ptr:ptrDrawable="@drawable/default_ptr_flip"
        ptr:ptrHeaderBackground="#383838"
        ptr:ptrHeaderTextColor="#FFFFFF">

        <RelativeLayout
            android:id="@+id/relative_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <android.support.v4.view.ViewPager
                android:id="@+id/viewPager"
                android:layout_width="match_parent"
                android:layout_height="150dp">

            </android.support.v4.view.ViewPager>


            <LinearLayout
                android:id="@+id/line"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignBottom="@id/viewPager"
                android:layout_centerHorizontal="true"
                android:layout_marginBottom="10dp"
                android:gravity="center"
                android:orientation="horizontal">

            </LinearLayout>


            <com.example.maohuawei.exercise.myview.MyGridView
                android:id="@+id/myGridView"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_below="@id/viewPager"
                android:divider="#666"
                android:dividerHeight="1dp"
                android:numColumns="2">

            </com.example.maohuawei.exercise.myview.MyGridView>


        </RelativeLayout>


    </com.handmark.pulltorefresh.library.PullToRefreshScrollView>


</LinearLayout>

如果用GridView或者ListView只能加载一条数据,所以需要自定义一个GridView继承GridView

public class MyGridView extends GridView {
    public MyGridView(Context context) {
        super(context);
    }

    public MyGridView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MyGridView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    //重写此方法
    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, expandSpec);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值