RecyclerView的用法

申明:低级码农问题解决中的参考和解决后的小结,仅用于个人记录,能力有限,可能有些错误,缺陷不自知,欢迎在评论中指正,谢谢!

 

需要依赖额外的库 recyclerview

  • RecyclerView两个必要的步骤

   1、setLayoutManager,包括LinearLayoutManager/线性,GridLayoutManager/网格,StaggeredGridLayoutManager/瀑布流,都可以设置水平和竖直两个方向。瀑布流布局的实现,依赖于Adapter内的写法。注意,当确定方向后,另一个方向的宽高设置将无效。

  2、setAdater(RecyclerView.Adapter),这个Adapter关联RecyclerView.Holder。

 1     private class RecyclerAdapter extends RecyclerView.Adapter {
 2         private ArrayList<String> data;
 3         private LayoutInflater inflater;
 4 
 5         public RecyclerAdapter(Activity activity, ArrayList<String> data) {
 6             this.data = data;
 7             inflater = activity.getLayoutInflater();
 8         }
 9 
10         @NonNull
11         @Override
12         public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
13             View view = inflater.inflate(R.layout.textview, parent, false);
14             return new RecyclerHolder(view);
15         }
16 
17         @Override
18         public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
19             ((RecyclerHolder) holder).tv.setText(data.get(position));
20             ((RecyclerHolder) holder).tv.setOnClickListener(null);
21         }
22 
23         @Override
24         public int getItemCount() {
25             return data.size();
26         }
27     }
28 
29     private class RecyclerHolder extends RecyclerView.ViewHolder {
30         public TextView tv;
31 
32         public RecyclerHolder(@NonNull View itemView) {
33             super(itemView);
34             tv = (TextView) itemView.findViewById(R.id.tv);
35         }
36     }

 

  • RecyclerView的点击事件

  RecyclerView没有像ListView,Grid'View那样的OnItemClickListener,其点击事件需要在Adapter中设置。

 

posted @ 2020-03-29 21:06  hellodingc  阅读(178)  评论(0)    收藏  举报