RecyclerView简单使用笔记

RecyclerView(比ListView、GridView更强大的滚动控件)

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

布局文件中和ListView一致

    
新建适配器
public class RvAdapter extends RecyclerView.Adapter {

    private List ml;

    public RvAdapter(List ml) {
        this.ml = ml;
    }
适配器继承RecyclerView.Adapter泛型为RvAdapter中的ViewHolder
/**
 * 创建ViewHolder实例
 * @param parent
 * @param viewType
 * @return
 */
@Override
public 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
 */
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
    holder.iv.setImageResource(ml.get(position).getIv());
    holder.tv.setText(ml.get(position).getTv());
}

/**
 * 拥有子项总数
 * @return
 */
@Override
public 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);






你可能感兴趣的:(Android,Android)