RecyclerView网格布局

GridLayoutManager

一、 引入问题

在这里插入图片描述

要实现这个布局,我们需要怎么做呢?

  1. 用线性布局画各种长度尺寸的button?
    可行,但扩展性不够,假如将第二行和第三行互换位置呢 再增加几行呢 再增加几种类型的item呢?
  2. 我们可以试下recyclerview的网格布局,进行动态适配各行的item
    可行,扩展性够

二、解决问题

方案:使用recyclerview的网格布局
  1. 定义itemType,针对不同的类型填充不同的布局

这里我们用不同itemType,之后可以在任意位置扩展这些类型的item

  1. 核心代码
public class MainActivity extends AppCompatActivity {
   
    private RecyclerView mRecyclerView;
    private RecyAdapter mAdapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
   
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mRecyclerView = findViewById(R.id.recycler_view);
        init();
    }

    public void init() {
   
        GridLayoutManager gridLayoutManager = new GridLayoutManager(getApplicationContext(), 3);
        mRecyclerView.setLayoutManager(gridLayoutManager);
        mAdapter = new RecyAdapter();
        mRecyclerView.setAdapter(mAdapter);
        gridLayoutManage
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在RecyclerView网格布局中隐藏指定的项,您需要执行以下步骤: 1. 在您的适配器中,为每个项设置一个标志,以指示它是否应该被隐藏。您可以使用一个布尔数组或一个集合来存储这些标志。 2. 在您的适配器中,覆盖getItemCount()方法,以便它返回RecyclerView中应该显示的项数,而不是所有项的数量。您可以使用一个循环来计算要显示的项数,并在循环中检查每个项的隐藏标志。 3. 在您的适配器中,覆盖getItemViewType()方法,以便它为每个项返回一个视图类型。您可以使用两个视图类型:一个用于普通项,另一个用于隐藏项。 4. 在您的适配器中,覆盖onCreateViewHolder()方法,以便它为每个视图类型创建不同的ViewHolder。对于隐藏项,您可以创建一个ViewHolder,它的itemView是一个空视图。 5. 在您的适配器中,覆盖onBindViewHolder()方法,以便它绑定每个ViewHolder到相应的数据项。对于隐藏项,您可以不执行任何绑定操作。 6. 在您的活动或片段中,设置RecyclerView布局管理器为网格布局,并设置列数。您可以使用GridLayoutManager类来完成此操作。 7. 在您的活动或片段中,设置RecyclerView的适配器为您的适配器。 8. 最后,在您的活动或片段中,遍历所有要隐藏的项,并将它们的隐藏标志设置为true。然后,调用您的适配器的notifyDataSetChanged()方法,以便RecyclerView刷新并重新计算要显示的项数。 这样,您就可以在RecyclerView网格布局中隐藏指定的项。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值