You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中ImageView调用setVisibility(View.GONE)不生效仍留空白区域问题

问题原因

  1. 空判断逻辑错误:你当前使用if(url == "null")判断空有两处错误:
    • Java中对比字符串内容不能用==,==对比的是字符串对象的内存地址,只有两个字符串是同一个对象时才会返回true,对比内容需要使用equals()方法
    • 你仅判断了URL为字符串"null"的场景,没有处理URL是真null对象、空字符串的场景,这时候GONE逻辑根本不会触发,所以ImageView还会占用空间
  2. 额外排查点:如果你是在RecyclerView/ListView的item布局中使用该ImageView,还需要检查item根布局的高度是否设置为固定值,若根布局高度固定,就算内部ImageView设为GONE,item整体高度不变,也会出现空白区域

修复方案

  1. 修正Java逻辑中的空判断代码:
url = list.get(position).getImageUrl();
// 覆盖所有空场景:null对象、内容为"null"的字符串、空字符串/全空格字符串
if(url == null || url.trim().equals("null") || url.trim().isEmpty()) {
    imageView.setVisibility(View.GONE);
} else {
    imageView.setVisibility(View.VISIBLE);
    Glide.with(DisplayQuestions.this)
            .load(url)
            .into(imageView);
}
  1. 如果是列表item场景,将item根布局的高度属性改为wrap_content即可。

内容的提问来源于stack exchange,提问作者Lav Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 21:00:00