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>
AI 代码解读

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);
    }
}
AI 代码解读

效果:

源码研究

Code方法研究:

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


>
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();
    }
}
AI 代码解读

案例源代码:

GitHub

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

你好,我是AI助理

可以解答问题、推荐解决方案等