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中设置。
浙公网安备 33010602011771号