Android 原生下拉刷新SwipeRefreshLayout 与 RecycleLayout 使用

来源:互联网 发布:数据采集卡软件 编辑:程序博客网 时间:2024/06/08 01:49

XML 中配置:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="@android:color/white"    android:orientation="vertical">    <android.support.v4.widget.SwipeRefreshLayout        android:id="@+id/refresh"        android:layout_width="match_parent"        android:layout_height="match_parent">        <android.support.v7.widget.RecyclerView            android:id="@+id/recycleView"            android:layout_width="match_parent"            android:layout_height="match_parent">        </android.support.v7.widget.RecyclerView>    </android.support.v4.widget.SwipeRefreshLayout></LinearLayout>
下面是代码的实现private void initData(View view) {        mDatas = new ArrayList<>();        for (int i = 0; i < 10; i++) {            mDatas.add(i+"");        }        final Myadapter mAdapter=new Myadapter();        refreshLayout = view.findViewById(R.id.refresh);        refreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {            @Override            public void onRefresh() {                new Handler().postDelayed(new Runnable() {                    @Override                    public void run() {                        refreshLayout.setRefreshing(false);                        mDatas.add("15");                        mAdapter.notifyDataSetChanged();                    }                },2000);            }        });        recycleView = (RecyclerView) view.findViewById(R.id.recycleView);        recycleView.setLayoutManager(new LinearLayoutManager(getActivity()));        recycleView.setAdapter(mAdapter);        recycleView.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.HORIZONTAL));    }    class Myadapter extends RecyclerView.Adapter<HomeFragment.MyViewHolder>{        @Override        public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {            MyViewHolder holder = new MyViewHolder(LayoutInflater.from(getActivity()).inflate(R.layout.layout_item, parent, false));            return holder;        }        @Override        public void onBindViewHolder(MyViewHolder holder, int position) {            holder.tv.setText(mDatas.get(position));        }        @Override        public int getItemCount() {            return mDatas.size();        }    }    class MyViewHolder extends RecyclerView.ViewHolder {        TextView tv;        public MyViewHolder(View itemView) {            super(itemView);            tv = (TextView) itemView.findViewById(R.id.tv);        }    }




需要注意的是recycleview 的adapter 中的泛型的使用。

很简单的几行代码就可以实现下拉刷新,效果也还不错。唯一的缺憾就是没有上拉加载。


需要注意的是recycleview  的adapter 中的泛型的使用。

很简单的几行代码就可以实现下拉刷新,效果也还不错。唯一的缺憾就是没有上拉加载。

阅读全文
0 0
原创粉丝点击