gpt4 book ai didi

java - RecyclerView 的项目显示不正确

转载 作者:搜寻专家 更新时间:2023-10-30 21:01:53 26 4
gpt4 key购买 nike

在我的 onBindViewHolder我的RecyclerView.Adapter<SearchAdapter.ViewHolder>当用户点击 cardview一个按钮变得可见。但是当我滚动 recyclerview 时,其他一些项目按钮也显示为可见。为什么会这样?

这是我的代码:

@Override
public void onBindViewHolder(final ViewHolder viewHolder, final int position) {
viewHolder.card.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (viewHolder.content_layout.getVisibility() == View.VISIBLE) {
viewHolder.content_layout.setVisibility(View.GONE);
viewHolder.address.setMaxLines(2);
viewHolder.attribute.setMaxLines(2);
} else {
viewHolder.content_layout.setVisibility(View.VISIBLE);
viewHolder.address.setMaxLines(8);
viewHolder.attribute.setMaxLines(8);
}
}
});
...
}

最佳答案

一旦您开始向下滚动列表,您的 View 就会被回收。这意味着之前膨胀的 ViewHolder(一些在 onCreateViewHolder 中创建的)被重新使用。
所以你要做的是记住点击的位置(例如通过 SparseBooleanArray )并检查 onBindViewHolder View 是否应该可见(之前点击)。

您可以在 this StackOverflow 中找到 SparseBooleanArray 的基本用法示例发布

关于java - RecyclerView 的项目显示不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36824121/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com