android5.0自带兼容控件__SwipeRefreshLayout

简介:

SwipeRefreshLayout


本文由 Luzhuo 编写,请尊重个人劳动成果,转发请保留该信息.
原文: http://blog.csdn.net/Rozol/article/details/50256743
微博: http://weibo.com/u/2524456400


SwipeRefreshLayout是android自带的下拉刷新控件.

基本使用

基本代码:

XML布局:

<android.support.v4.widget.SwipeRefreshLayout
    android:id="@+id/swipe"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycler"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</android.support.v4.widget.SwipeRefreshLayout>

Activity代码:

public class SwipeRefreshLayoutDemo extends Activity implements OnRefreshListener {
    private SwipeRefreshLayout refreshLayout;
    private RecyclerView recycler;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_swipe);
        initView();
        initData();
    }

    private void initView() {
        refreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipe);
        recycler = (RecyclerView) findViewById(R.id.recycler);
    }

    private void initData() {
        // 下拉刷新
        refreshLayout.setOnRefreshListener(this); // 设置刷新监听
        refreshLayout.setColorSchemeResources(R.color.orange, R.color.green, R.color.purple); // 进度动画颜色
        refreshLayout.setProgressBackgroundColorSchemeResource(R.color.swipefefresh_bg); // 进度背景颜色

        // RecycleView
        GridLayoutManager layoutManager = new GridLayoutManager(this,3);
        layoutManager.setOrientation(RecyclerView.VERTICAL);
        recycler.setLayoutManager(layoutManager);
        recycler.setAdapter(new GridAdapter(this,true));
    }

    @Override
    public void onRefresh() {
        refreshLayout.postDelayed(new Runnable() { // 发送延迟消息到消息队列
            @Override
            public void run() {
                refreshLayout.setRefreshing(false); // 是否显示刷新进度;false:不显示
            }
        },3000);
    }
}

效果:

源码研究

Code方法研究:

public class SwipeRefreshLayout extends ViewGroup implements NestedScrollingParent, NestedScrollingChild {
    public static final int LARGE = MaterialProgressDrawable.LARGE; //ProgressBar style


>
public static final int DEFAULT = MaterialProgressDrawable.DEFAULT;

    public void setProgressViewOffset(boolean scale, int start, int end) { } //设置滚动View位置,一般在刚打开界面时才用 [scale:true测量;start/end偏移量] {重要}
    public void setProgressViewEndTarget(boolean scale, int end) { } //设置滚动View休息位置 [scale:true测量;end偏移量]
    public void setSize(int size) { } //大小(样式) [LARGE/DEFAULT] {重要}
    public void setOnRefreshListener(OnRefreshListener listener) { } //设置下拉刷新 {重要}
    public void setRefreshing(boolean refreshing) { } //是否显示刷新进度:true显示/false隐藏 {重要}
    public void setProgressBackgroundColorSchemeResource(@ColorRes int colorRes) { } //刷新进度背景颜色 {重要}
    public void setProgressBackgroundColorSchemeColor(@ColorInt int color) { }
    public void setColorSchemeResources(@ColorRes int... colorResIds) { } //刷新进度颜色 {重要}
    public void setColorSchemeColors(int... colors) { }
    public boolean isRefreshing() { } //是否在刷新
    public void setDistanceToTriggerSync(int distance) { } //手指滑动多少距离后刷新进度同步下降
    public int getProgressCircleDiameter() { } // 获取刷新进度圆的直径
    public boolean canChildScrollUp() { } //布局可以向上滚动,Override这个方法

    public interface OnRefreshListener {
        public void onRefresh();
    }
}

案例源代码:

GitHub

目录
相关文章
|
6月前
|
XML Java Android开发
Android Studio App开发中改造已有的控件实战(包括自定义支付宝月份选择器、给翻页栏添加新属性、不滚动的列表视图 附源码)
Android Studio App开发中改造已有的控件实战(包括自定义支付宝月份选择器、给翻页栏添加新属性、不滚动的列表视图 附源码)
119 1
|
1月前
|
XML 存储 Java
浅谈Android的TextView控件
浅谈Android的TextView控件
32 0
|
2月前
|
XML 编解码 Android开发
安卓开发中的自定义视图控件
【9月更文挑战第14天】在安卓开发中,自定义视图控件是一种高级技巧,它可以让开发者根据项目需求创建出独特的用户界面元素。本文将通过一个简单示例,引导你了解如何在安卓项目中实现自定义视图控件,包括创建自定义控件类、处理绘制逻辑以及响应用户交互。无论你是初学者还是有经验的开发者,这篇文章都会为你提供有价值的见解和技巧。
46 3
|
3月前
|
前端开发 Android开发 开发者
安卓开发中的自定义视图:构建你的第一个控件
【8月更文挑战第26天】在安卓开发的浩瀚海洋中,自定义视图是一块充满魔力的乐土。它不仅是开发者展示创造力的舞台,更是实现独特用户体验的关键。本文将带你步入自定义视图的世界,从基础概念到实战应用,一步步教你如何打造自己的第一个控件。无论你是初学者还是有经验的开发者,这篇文章都将为你的开发之旅增添新的风景。
|
5月前
|
Java Android开发
18. 【Android教程】图片控件 ImageView
18. 【Android教程】图片控件 ImageView
85 4
|
4月前
|
XML 数据格式
Android-自定义三角形评分控件
Android-自定义三角形评分控件
42 0
|
5月前
|
前端开发 API Android开发
25. 【Android教程】列表控件 ListView
25. 【Android教程】列表控件 ListView
173 2
|
5月前
|
Java Android开发 开发者
17. 【Android教程】开关控件ToggleButton/Switch
17. 【Android教程】开关控件ToggleButton/Switch
66 2
|
5月前
|
XML Android开发 数据格式
Android基础控件介绍
Android基础控件介绍
|
5月前
|
Android开发
Android 自定义View 测量控件宽高、自定义viewgroup测量
Android 自定义View 测量控件宽高、自定义viewgroup测量
93 0