SwipeRefrshLayout+RecyclerView实现刷新功能
来源:互联网 发布:php虚拟物品商城 编辑:程序博客网 时间:2024/06/01 08:17
SwipeRefrshLayout是Google官方更新的一个Widget,可以实现下拉刷新的效果。基本使用的方法如下:setOnRefreshListener(OnRefreshListener):添加下拉刷新监听器setRefreshing(boolean):显示或者隐藏刷新进度条isRefreshing():检查是否处于刷新状态setColorSchemeResources():设置进度条的颜色主题,最多设置四种,以前的setColorScheme()方法已经弃用了。
public class SwiperRefreshFragment extends Fragment implements TestAdapter.RecyclerViewItemListener {
private View view; private SwipeRefreshLayout swiper_refresh; private RecyclerView recycler_view; private List<TestBean> testDatas; private TestAdapter mAdapter; private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case 1: mAdapter.notifyDataSetChanged(); swiper_refresh.setRefreshing(false); break; } } }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { view = inflater.inflate(R.layout.fragment_swiperefresh, container, false); testDatas = new ArrayList<>(); initTestData(); initViews(view); return view; } private void initViews(View view) { recycler_view = (RecyclerView) view.findViewById(R.id.recycler_view); swiper_refresh = (SwipeRefreshLayout) view.findViewById(R.id.swiper_refresh); //GridView样式展示 LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false); recycler_view.setLayoutManager(linearLayoutManager); mAdapter = new TestAdapter(testDatas, this); recycler_view.setAdapter(mAdapter);// //这句就是添加分隔线// recycler_view.addItemDecoration(new MyDecoration(getActivity(), MyDecoration.VERTICAL_LIST));// recycler_view.addItemDecoration(new MyDecoration(getActivity(), MyDecoration.HORIZONTAL_LIST)); //设置item间距,5dp recycler_view.addItemDecoration(new SpaceItemDecoration(5)); swiper_refresh.setColorSchemeResources(R.color.colorPrimaryDark); swiper_refresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { //模拟刷新数据 freshData(); } }); } @Override public void onAttach(Context context) { super.onAttach(context); } private void initTestData() { TestBean bean; for (int i = 0; i < 12; i++) { bean = new TestBean(); bean.setContent("测试_" + i + "_数据"); testDatas.add(bean); } } private void freshData() { testDatas.clear(); new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(1500); TestBean bean; for (int i = 0; i < 12; i++) { bean = new TestBean(); bean.setContent("刷新_" + i + "_数据"); testDatas.add(bean); } mHandler.sendEmptyMessage(1); } catch (InterruptedException e) { e.printStackTrace(); } } }).start(); } @Override public void onItemClick(int position) { Toast.makeText(getActivity(), "点击了" + testDatas.get(position).getContent(), Toast.LENGTH_LONG).show(); }}
布局文件:
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#f5f5f5" > <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/swiper_refresh" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.RecyclerView android:id="@+id/recycler_view" android:layout_margin="10dp" android:layout_width="match_parent" android:layout_height="match_parent"/> </android.support.v4.widget.SwipeRefreshLayout></android.support.design.widget.CoordinatorLayout>
现在大多数用户都在使用安卓5.0以上版本手机,项目中逐渐加入了material design设计风格。 边学习边整理,写了个简单地DEMO,工作之余还会不断完善更新。
demo地址:https://github.com/ldm520/ANDROID_MATERIAL_DESIGN
阅读全文
0 0
- SwipeRefrshLayout+RecyclerView实现刷新功能
- 封装RecyclerView,实现下拉刷新,上拉加载功能
- SwipeRefreshLayout+RecyclerView实现下拉刷新上拉加载功能
- RecyclerView下拉刷新实现
- RecyclerView实现ListView功能
- SwipeRefreshLayout+RecyclerView实现下拉刷新
- RecyclerView底部刷新实现详解
- RecyclerView顶部刷新实现详解
- XRecyclerView:实现下拉刷新、滚动到底部加载更多以及添加header功能的RecyclerView
- RecyclerView+SwipeRefreshLayout实现上拉刷新,下拉加载更多的功能
- 简单实现WaveSwipeRefreshLayout+RecyclerView的上拉加载下拉刷新的功能
- RecyclerView 实现一个小功能
- RecyclerView实现的一些功能
- RecyclerView 实现购物车功能
- 下拉刷新功能实现
- Android - 实现下拉刷新 和 RecyclerView Bug
- RecyclerView实现上拉加载,下拉刷新
- SwipeRefreshLayout+RecyclerView实现上拉刷新
- (132)可移动光源
- mybatis 中sql语句传递多个参数
- springboot集成mybatis
- leetcoe.557 Reverse Words in a String III
- Android编译时报错:Ensure that you have installed a JDK(not just a JRE)and configured your JAVA_HOME......
- SwipeRefrshLayout+RecyclerView实现刷新功能
- [Unity3D] Optimization – Make Atlas textures for ParticleSystem, reduce drawcall, why not ?
- [RK3288][Android6.0] 调试笔记 --- Volume up键改成Back键
- 数据库主键生成方式分析
- SQA度量
- 安卓apk加密,几维安全帮你及时规避app潜在风险
- 在比较对象的时候为什么要重写equls()与hashCode()方法
- IMWeb提升营Day3
- Walle(瓦力)多渠道打包(含加固)-----------命令行