展开折叠会在回收者视图中显示其他项目

时间:2019-08-20 15:32:08

标签: android android-recyclerview adapter

我创建了可以扩展和折叠的各种titlesName。当我单击各个titleName时,如果回收站视图中的项目在视图中完全可见,则它们会完美展开和折叠。假设我有4个标题,每个标题包含10个组件,并说所有titleName最初都进行了扩展。接下来,执行折叠,我只看到标题的名称。完成此步骤后,所有标题都处于折叠状态,现在我单击layer2(即索引1),然后展开项目,使项目更多,以便它们可滚动并且一次看不到整个列表。当我折叠时,我看到layer2元素被折叠了,但是我看到layer3中的项目也变得可见了,尽管之前我折叠了每一层。

下面是我在 onBindViewHolder 中添加的代码:

if (position > startIndex && position < endIndex) {
                ViewGroup.LayoutParams param = holder.itemView.getLayoutParams();
                if (position > 0 && position > startIndex && position < endIndex && !this.layers[currIndex]) {
                    holder.itemView.setVisibility(View.GONE);
                    param.height = 0;
                    param.width = 0;
                } else if (holder.itemView.getVisibility() == View.GONE) {
                    param.height = LinearLayout.LayoutParams.WRAP_CONTENT;
                    param.width = LinearLayout.LayoutParams.MATCH_PARENT;
                    holder.itemView.setVisibility(View.VISIBLE);
                }
                holder.itemView.setLayoutParams(param);
            }

其中,startIndex是layer2的起点,endIndex是layer3的最后一个元素,而currIndex是在这种情况下单击layer2的图层的当前索引。层是布尔数组,其真实值表示标题已展开,而错误地表示标题已折叠,我已将此值绑定到一个人字形上,该人字形更改了展开和折叠的方向。有人,请帮助应该做的事情,以便当layer2发生崩溃时我看不到layer3中的组件。我怀疑何时完成回收并在折叠发生时持有人绑定了物品,但我使用的是View.GONE而不是View.VISIBLE。非常感谢您的帮助。无法找出问题。我的猜测是我需要为不在当前层中的元素做些什么,但是如何不确定。预先感谢。

0 个答案:

没有答案