RecyclerView简单使用笔记

来源:互联网 发布:数据维护工具v3.8 编辑:程序博客网 时间:2024/06/05 06:15
RecyclerView(比ListView、GridView更强大的滚动控件)

Android Studio中添加库
compile 'com.android.support:recyclerview-v7:24.2.1'

布局文件中和ListView一致
<android.support.v7.widget.RecyclerView    android:id="@+id/rv"    android:layout_width="match_parent"    android:layout_height="match_parent">    </android.support.v7.widget.RecyclerView>
新建适配器
public class RvAdapter extends RecyclerView.Adapter<RvAdapter.ViewHolder> {    private List<Student> ml;    public RvAdapter(List<Student> ml) {        this.ml = ml;    }
适配器继承RecyclerView.Adapter泛型为RvAdapter中的ViewHolder
/** * 创建ViewHolder实例 * @param parent * @param viewType * @return */@Overridepublic ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {    View inflate = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_rv, parent,false);    ViewHolder holder = new ViewHolder(inflate);    return holder;}/** * 对RecyclerView子项赋值 * @param holder * @param position */@Overridepublic void onBindViewHolder(ViewHolder holder, int position) {    holder.iv.setImageResource(ml.get(position).getIv());    holder.tv.setText(ml.get(position).getTv());}/** * 拥有子项总数 * @return */@Overridepublic int getItemCount() {    return ml.size();}
在Activity中制定RecyclerView的布局方式
1.线性布局setOrientation设置横向还是纵向
LinearLayoutManager lm = new LinearLayoutManager(this);lm.setOrientation(LinearLayoutManager.HORIZONTAL);rv.setLayoutManager(sm);rv.setAdapter(adapter);
2.网格布局,3代表3列
GridLayoutManager gm = new GridLayoutManager(this,3);rv.setLayoutManager(gm);rv.setAdapter(adapter);
2.瀑布流布局,3代表列数或行数,StaggeredGridLayoutManager.HORIZONTAL代表水平方向
StaggeredGridLayoutManager sm = new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.HORIZONTAL);rv.setLayoutManager(sm);rv.setAdapter(adapter);






0 0