上拉刷新下拉加载控件MaterialRefreshLayout的使用
来源:互联网 发布:中国的农作物产量知乎 编辑:程序博客网 时间:2024/05/16 18:29
MaterialRefreshLayout 一个非常好的上拉刷新下拉加载控件,废话不多说上代码:
首选在项目的build里面导入依赖:
dependencies {
/*下拉刷新上拉加载依赖materialrefreshlayout*/compile 'com.cjj.materialrefeshlayout:library:1.3.0'
}
XML代码;
<?xml version="1.0" encoding="utf-8"?><!--注意必须materialRefreshLayout必须为根节点;注意下拉刷新默认是没有的需要设置isLoadMOre为true才有下拉刷新;属性overlay为true有下拉覆盖listView波浪效果,默认为false;属性wave_color设置下拉背景颜色;属性app:wave_height_type="normal"设置下拉背景高度,normal为标准的,higher为较高的属性progress_colors设置进度动画颜色属性app:progress_show_arrow="false"实现显示圆形进度里面的箭头--><com.cjj.MaterialRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/mrl" android:layout_width="match_parent" android:layout_height="match_parent" app:isLoadMore="true" app:overlay="true" app:progress_show_arrow="false" app:progress_colors="@array/refreshColor" app:wave_color="@color/waveColor" app:wave_height_type="higher" tools:context="com.example.materialrefreshlayoutdemo.MainActivity"> <ListView android:id="@+id/lv" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/holo_blue_dark" /></com.cjj.MaterialRefreshLayout>
java代码;
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initData(); initView(); } //数据 List<String> list = new ArrayList<>(); private void initData() { list.addAll(Arrays.asList("安卓", "JAVA", "iOS", "H5")); } //组件初始化 MaterialRefreshLayout mrl; ListView listView; ArrayAdapter<String> adapter; private void initView() { mrl = (MaterialRefreshLayout) findViewById(R.id.mrl); listView = (ListView) findViewById(R.id.lv); adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, list); listView.setAdapter(adapter); //设置自动下拉刷新 //注意要加载数据必须设置个延迟,要不代码执行太快获取不到数据报空指针; new Handler().postDelayed(new Runnable() { @Override public void run() { //数据 refreshData(); //设置自动下拉刷新 mrl.autoRefresh(); } }, 3000); //设置自动上拉刷新 new Handler().postDelayed(new Runnable() { @Override public void run() { //数据 refreshData(); //设置自动上拉刷新 mrl.autoRefreshLoadMore(); } }, 2000); //监听mrl mrl.setMaterialRefreshListener(new MaterialRefreshListener() { @Override public void onRefresh(MaterialRefreshLayout materialRefreshLayout) { //下拉刷新...加载数据和关闭 //使用handler延迟时间模拟加载数据 new Handler().postDelayed(new Runnable() { @Override public void run() { //下拉刷新停止 //加载的数据 mrl.finishRefresh(); //关闭动画 refreshData(); } }, 3000); } //注意这个下拉加载的监听需要自己重写,因为系统默认是只有上拉刷新 @Override public void onRefreshLoadMore(MaterialRefreshLayout materialRefreshLayout) { super.onRefreshLoadMore(materialRefreshLayout); //上拉刷新.. 加载数据和最后关闭 new Handler().postDelayed(new Runnable() { @Override public void run() { //刷新加载的数据 refreshData(); //关闭加载动画 mrl.finishRefreshLoadMore(); } }, 3000); } }); } //更新的数据 private void refreshData() { //刷新加载的数据 list.addAll(Arrays.asList("三星", "华为", "苹果", "小米", "步步高", "OPPO")); //刷新适配器 adapter.notifyDataSetChanged(); }}
colors文件中引用的颜色
<array name="refreshColor"> <item>@color/material_yellow</item> <item>@color/material_blue</item> <item>@color/material_red</item> <item>@color/material_green</item></array>
//最后效果
0 0
- 上拉刷新下拉加载控件MaterialRefreshLayout的使用
- MaterialRefreshLayout(下拉刷新和上拉加载)
- MaterialRefreshLayout(下拉刷新,上拉加载)
- 下拉刷新上拉加载之MaterialRefreshLayout
- 下拉刷新上拉加载开源控件---MaterialRefreshLayout开源控件
- MaterialRefreshLayout实现下拉刷新上拉加载更多
- 用MaterialRefreshLayout实现下拉刷新 上拉加载更多
- MaterialRefreshLayout下拉刷新,上拉加载更多(修改)
- MaterialRefreshLayout 实现下拉刷新 和 上拉加载
- materialdesign下拉刷新控件MaterialRefreshLayout的使用
- 13.热门商品刷新(下拉刷新,上拉加载更多,materialRefreshLayout下拉刷新)
- 学习笔记 Tianmao 篇 materialRefreshLayout 下拉刷新 控件的使用
- 下拉刷新上拉加载控件+Material Design使用
- 使用安卓自带刷新控件实现ListView的上拉加载和下拉刷新
- 下拉刷新,上拉加载控件
- 上拉加载-下拉刷新控件 RefreshListView
- 上拉刷新下拉加载控件-PullToRefresh
- 上拉加载下拉刷新控件
- 如何让孩子爱上设计模式 ——23.状态模式(State Pattern)
- 天梯-红色警报
- Linux ps命令详解与示例说明
- Ubuntu16.04下伪分布式环境搭建之hadoop2.6.0、jdk1.7、Hbase0.98的安装与配置
- android developer tiny share-20170306
- 上拉刷新下拉加载控件MaterialRefreshLayout的使用
- STM32 定时器
- 初识Java继承关系类的实例化
- 如果有一天我不更新博客了
- 【高性能JavaScript】读书笔记
- Android APP压力测试之Monkey工具介绍
- Palette.generateAsync()过时的替代
- 计算机视觉之图像特征——图像梯度
- matlab之PS算法小程序(差值,溶解, 排除)