作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 RecyclerView。每个布局本身都包含展开 View 。随着项目点击展开被点击项目的 View 被展开。如果我单击两个项目,我的 RecyclerView 中将有两个具有扩展 View 的项目。我需要通过单击项目来关闭其他项目的展开 View 。回收站中必须只有一个具有展开式展开 View 的项目。
我该怎么做?
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.exp.collapse();
holder.itemView.setOnClickListener(v -> {
holder.exp.expand();
});
最佳答案
保存先前扩展位置的位置在列表对象中创建一个属性,例如一些 bool 值 isOpen 或现在单击新行时根据需要将其设置为 false 或 true
list.get(prevPosition).setIsOpen(false);
然后
notifyItemChanged(prevPosition);
确保你在你的 bindViewHolder 中处理过这样的事情
if(list.get(postition).getIsOpen()==false){
//hide your expanded list
}
关于android - 如何在 android 的 RecyclerView 中更改另一个项目的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52518528/
我是一名优秀的程序员,十分优秀!