【问题标题】:Ho to maintain space between grid in GridLayoutManager when itemview is gone?当 itemview 消失时,如何在 GridLayoutManager 中保持网格之间的空间?
【发布时间】:2020-08-11 00:04:27
【问题描述】:

活动中

recyclerview.setLayoutManager(new GridLayoutManager(this, 3));

inAdapter onBindViewHolder

holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                holder.itemView.setVisibility(GONE);
            }
        });

itemview 消失后网格布局排列不正确

【问题讨论】:

  • 截图来自你的输出还是想要的输出?
  • 没有当前输出
  • 然后,您需要从列表中删除该项目。

标签: android android-recyclerview android-adapter android-gridlayout


【解决方案1】:

您必须从您在GridLayout 中绑定的列表中删除该项目。

holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                yourlist.remove(position);
                notifyDataSetChanged();
            }
        });

如果你去了特定的项目,那么空间总是在视野中......

更新

// Gets linearlayout
LinearLayout layout = findViewById(R.id.numberPadLayout);
// Gets the layout params that will allow you to resize the layout
LayoutParams params = layout.getLayoutParams();
// Changes the height and width to the specified *pixels*
params.height = 0;
params.width = 0;
layout.setLayoutParams(params);

【讨论】:

  • 通过删除出现了新的问题,这里没有维护,我已经尝试过了,它的工作很完美,但我想通过 GONE 方法
  • “如果你去了特定的项目,那么空间总是在视野中..”这就是我要删除的
  • itemview 宽度设置为 0 是否有任何选项?
  • @Vora 你能说说你在移除项目时遇到的问题吗?
  • 这很长,我在几个小时前就删除了,所以我改变了我的策略
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-22
  • 1970-01-01
  • 2021-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多