android - 在回收器视图项中动态完成时视图不隐藏
问题描述
我RecyclerView
用来列出项目,并在每个单独的列表中显示一个Visible/Gone
动态的图像。我View.GONE
用来隐藏视图。
在图像应该隐藏的情况下并不总是有效。它仍然显示在屏幕上,并且在调试模式下我已经检查过了,当
image.getVisiblity()
它给我 int 值时"8"
,这意味着视图是 Gone
,但我仍然可以在该列表中看到该图像。它只是偶尔发生。
我尝试使用View.INVISIBLE
它,它一直在工作,但它占用了布局中的空间,这是预期的
我sparseArray
用来存储所有的holders classes
。我在适配器中编写了一个方法并从活动中调用它。我试图隐藏replayIcon
视图
public void handleReplayButton(int pos,Boolean isDisplay) {
Holder holder = holderSparseArray.get(pos);
if(holder != null) {
if (isDisplay != null && isDisplay == true) {
holder.playIcon.setVisibility(View.GONE);
holder.pauseIcon.setVisibility(View.GONE);
holder.replayIcon.setVisibility(View.VISIBLE);
} else if(isDisplay != null && isDisplay == false) {
holder.playIcon.setVisibility(View.VISIBLE);
holder.pauseIcon.setVisibility(View.GONE);
holder.replayIcon.setVisibility(View.GONE);
} else {
holder.playIcon.setVisibility(View.GONE);
holder.pauseIcon.setVisibility(View.VISIBLE);
holder.replayIcon.setVisibility(View.GONE);
}
}
}
这是else statement
我想要的最后一个,它将视图设置为 GONE。当我调用holder.replayIcon.getVisibility()
它时,它给了我 int 8 但是,我仍然可以看到图标
解决方案
尝试在一个语句的末尾调用 invisible 使其可见,反之亦然。
或者
你也可以尝试把notifydatasetchanged()。
推荐阅读
- exchange-server - 如何在 EWS API 中关闭特定邮箱的流订阅?
- ios - 为什么日期格式化程序崩溃?
- rest - 问题 AVR 卡住并且程序计数器丢失...?
- ipfs - IPFS 上是否可以进行临时、非持久存储?
- php - Prestashop 在管理面板侧边栏菜单中添加新项目
- php - 谷歌分析 API 错误的用户编号和维度
- python - Pandas 深拷贝和 scikit 学习 min max scaler
- python - 我可以缩短在 Python 中添加多个变量的过程吗?
- python - 正则表达式查找开始和结束之间的所有行
- node.js - Shopify Script Tags Create 方法未在控制台中显示响应