RecyclerView的使用

本文详细介绍如何使用 RecyclerView 的 Adapter 进行视图展示。包括 Adapter 的继承方式、ViewHolder 的创建及其实现方法,以及如何绑定数据等内容。此外还介绍了如何设置布局管理器来实现 Listview 或 Gridview 的显示效果。

之前做一个应用商店类的项目,第一次使用RecyclerView,下面说说怎么使用,这里只说adapter使用

1,首先是Adapter 的继承,不再像Listview继承BaseAdapter,而是继承 RecycleView.Adapter<>,注意后面的泛型是你的ViewHolder类型.

	public class RecommendAdapter extends RecyclerView.Adapter<MyViewHolder> implements Observer {}


	2,创建ViewHolder:
class MyViewHolder extends RecyclerView.ViewHolder{
    TextView textView;
    ImageView imageView;
    Button button;
    LinearLayout downloadLayout;
    LinearLayout describeLayout;
    TextView sizeView;
    TextView statusView;
    TextView describeView;
    TextView size;
    TextView titleView;
    TextView rateView;
    ProgressBar progressBar;
    LinearLayout reconmmendItem;

    public MyViewHolder(View itemView) {
        super(itemView);
        titleView = (TextView) itemView.findViewById(R.id.app_type_count);
        textView = (TextView) itemView.findViewById(R.id.app_name_tv);
        imageView = (ImageView) itemView.findViewById(R.id.app_icon);
        button = (Button) itemView.findViewById(R.id.app_operation_bt);
        downloadLayout = (LinearLayout) itemView.findViewById(R.id.app_down_ll);
        describeLayout = (LinearLayout) itemView.findViewById(R.id.app_describe_ll);
        sizeView = (TextView) itemView.findViewById(R.id.app_size_tv);
        statusView = (TextView) itemView.findViewById(R.id.app_status_tv);
        describeView = (TextView) itemView.findViewById(R.id.app_describe_tv);
        size = (TextView) itemView.findViewById(R.id.app_down_size_tv);
        rateView = (TextView) itemView.findViewById(R.id.app_down_rate_tv);
        progressBar = (ProgressBar) itemView.findViewById(R.id.app_down_pb);
        reconmmendItem = (LinearLayout) itemView.findViewById(R.id.recommend_item);
    }


     3,实现方法:
	
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = null;
    if(viewType == 0) {
        view = layoutInflater.inflate(R.layout.manage_item_text,parent,false);
    }else {
        view = layoutInflater.inflate(R.layout.recommend_item,parent,false);
    }

    MyViewHolder viewHolder = new MyViewHolder(view);
    return viewHolder;
}

	

4: 绑定数据:

public void onBindViewHolder(final MyViewHolder holder, int position){}

这样就搞定了,是不是比ListView的简单一些,最后请记得设置布局管理器,可以切换是Listview还是gridview.....

mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false));
mRecyclerView.setLayoutManager(new GridLayoutManager(this,4));

### 使用RecyclerView实现列表视图 #### 创建并配置RecyclerView实例 为了在Android应用程序中使用`RecyclerView`显示列表视图,首先需要获取布局文件中的`RecyclerView`对象。这可以通过调用`findViewById()`方法完成: ```java RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_view); ``` 接着要为`RecyclerView`指定一个适配器(Adapter),该适配器负责提供数据给各个子项(ItemView)[^1]。 #### 设置LayoutManager 为了让`RecyclerView`知道如何排列它的孩子视图(Child View), 需要设置一个`LayoutManager`. 常见的选择有线性布局(`LinearLayoutManager`)、网格布局(`GridLayoutManager`)以及瀑布流布局(`StaggeredGridLayoutManager`). 下面是一个简单的例子展示了如何应用线性布局管理器: ```java recyclerView.setLayoutManager(new LinearLayoutManager(this)); ``` #### 定义ViewHolder与Adapter 对于每一个条目来说, `RecyclerView`利用了一个叫做`ViewHolder`的设计模式来提高性能. 这里定义了持有单个item UI元素引用的静态内部类. 之后还需要编写自定义的`Adapter`, 继承自`RecyclerView.Adapter<MyAdapter.MyViewHolder>`, 并重写几个抽象的方法如`onCreateViewHolder()`,`onBindViewHolder()`, 和`getItemCount()` 来填充实际的数据到viewholder 中去[^3]. #### 数据绑定 当设置了adapter 后就可以准备向其中添加数据源了。一般情况下我们会有一个List 或者Array 类型的数据集作为输入传递给adapter 的构造函数,在每次更新界面的时候只需要刷新这个集合再通知adapter 即可。 ```java myDataset.add("New Item"); mAdapter.notifyItemInserted(myDataset.size()-1); ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

plx_csdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值