【Android学习笔记】RecycleView 绑定了Adapter的item明明设置了match_parent却不起作用

item的布局,宽度设置了match_parent却还是好像wrap_parent那样

如下图所示:


把onCreateViewHolder里的这行改成下面那行即可:

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1.     @Override  
  2.     public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {  
  3. //        View view = View.inflate(parent.getContext(), R.layout.item_recharge, null);  
  4.         View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_recharge, parent, false);  
  5.         return new IncomeViewHodler(view, parent.getContext());  
  6.     }  
Android Studio 中对 RecyclerView 绑定 Linear 和 Grid 的过程如下: 1. 在你的布局文件中添加 RecyclerView 组件,例如: ```xml <androidx.recyclerview.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 2. 创建一个 Adapter 类,继承自 RecyclerView.Adapter,并实现必要的方法。 3. 创建一个 ViewHolder 类,继承自 RecyclerView.ViewHolder,并定义需要显示的控件。 4. 在你的 Activity 或 Fragment 中,获取 RecyclerView 实例,并设置 LayoutManager 和 Adapter。例如: ```java RecyclerView recyclerView = findViewById(R.id.recyclerView); recyclerView.setLayoutManager(new LinearLayoutManager(this)); // 设置线性布局 // recyclerView.setLayoutManager(new GridLayoutManager(this, 2)); // 设置网格布局,2 表示列数 recyclerView.setAdapter(adapter); ``` 其中,`LinearLayoutManager` 表示线性布局,`GridLayoutManager` 表示网格布局,可以通过第二个参数设置列数。 5. 在 Adapter 中,重写 `getItemViewType` 方法,根据需要显示的布局类型返回不同的值。例如: ```java @Override public int getItemViewType(int position) { // 返回 0 表示显示线性布局,返回 1 表示显示网格布局 return isLinear ? 0 : 1; } ``` 6. 在 Adapter 中,根据返回的布局类型创建不同的 ViewHolder。例如: ```java @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { if (viewType == 0) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_linear, parent, false); return new LinearViewHolder(view); } else { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_grid, parent, false); return new GridViewHolder(view); } } ``` 其中,`item_linear` 和 `item_grid` 分别表示线性布局和网格布局的布局文件。 7. 在 ViewHolder 中,绑定需要显示的控件。例如: ```java class LinearViewHolder extends RecyclerView.ViewHolder { TextView textView; public LinearViewHolder(View itemView) { super(itemView); textView = itemView.findViewById(R.id.text_view); } } class GridViewHolder extends RecyclerView.ViewHolder { ImageView imageView; public GridViewHolder(View itemView) { super(itemView); imageView = itemView.findViewById(R.id.image_view); } } ``` 现在,你就可以在 RecyclerView 中显示线性布局和网格布局了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值