java - 回收器适配器项目错误
问题描述
我正在尝试创建一个像 instagram 这样的评论页面,但我遇到了一个荒谬的错误;
每个评论行都有一个 recyclerview 并且用户单击“显示回复”按钮我使 Recyclerview 可见但在 10-11 个项目之后,该项目的 recyclerview 也可见。
我知道我的英语很糟糕,但我需要帮助。
holder.replyCount.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(main,"sdf",Toast.LENGTH_LONG).show();
new Comment().getCommentResponse(getCommentModels.get(position).getId(), new IMainResponse() {
@Override
public <T> void Succsess(Response<T> _response) {
getCommentModel = (List<getCommentModel>) _response.body();
AdapterComment adapterComment = new AdapterComment(main, getCommentModel);
holder.recyclerView.setVisibility(View.VISIBLE);
holder.recyclerView.setAdapter(adapterComment);
holder.recyclerView.setHasFixedSize(true);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(main);
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
holder.recyclerView.setLayoutManager(linearLayoutManager);
}
@Override
public void Error(ErrorModel _eresponse) {
}
});
}
});
解决方案
在模型类中创建一个布尔值以跟踪可见性
if (getCommentModels.get(position).isVisible()) {
holder.recyclerView.setVisibility(View.VISIBLE);
} else {
holder.recyclerView.setVisibility(View.GONE);
}
holder.replyCount.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getCommentModels.get(position).setVisible(!getCommentModels.get(position).isVisible());
notifyItemChanged(position);
new Comment().getCommentResponse(getCommentModels.get(position).getId(), new IMainResponse() {
@Override
public <T> void Succsess(Response<T> _response) {
getCommentModel = (List<getCommentModel>) _response.body();
AdapterComment adapterComment = new AdapterComment(main, getCommentModel);
holder.recyclerView.setAdapter(adapterComment);
holder.recyclerView.setHasFixedSize(true);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(main);
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
holder.recyclerView.setLayoutManager(linearLayoutManager);
}
@Override
public void Error(ErrorModel _eresponse) {
}
});
}
});
推荐阅读
- csv - 使用 sed 将 \s+ 分隔文件转换为 csv
- hackintosh - 我无法禁用 SIP 或无法将文件夹复制到文件系统
- flutter - 如何在 Flutter 的 Camera 包中设置分辨率
- python - 如果 else 子句也引发错误,我可以重构 if 语句的错误处理吗?
- javascript - 为什么 WebdriverIO 浏览器对象过早退出我的循环?
- python - Python - 查找字符串中的所有大写字母
- python - 将循环变量值绑定到 lambda
- google-cloud-platform - 超出 GCP 负载平衡配额“BACKEND_SERVICES”。限制:全球 9.0
- yfinance - 来自 yfinance 的每小时 OHLC 数据中报告了一天中第一个小时的 0 量
- angular - Angular HttpClient POST 请求不与 Spring Controller 交互