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

RecyclerView中ImageView运行时不渲染 设计视图可正常显示

问题根因

你遇到的预览正常、运行无图片的核心问题是布局中给AppCompatImageView配置图片时用了tools命名空间:

tools:background="@drawable/ic_baseline_cloud_download_24"

tools命名空间下的所有属性仅在Android Studio的设计预览阶段生效,应用编译运行时这类属性会被完全忽略,所以运行时不会加载对应的drawable资源。

修复方法

你可以根据需求选择以下任意一种方案修改:

方案1:保留背景设置的方式

新增android:前缀的background属性,保证运行时也能加载资源,tools前缀的属性可以保留用于预览调试:

<androidx.appcompat.widget.AppCompatImageView
    android:elevation="2dp"
    android:id="@+id/imageb"
    android:layout_width="50dp"
    android:layout_height="50dp"
    cardView:layout_constraintBottom_toBottomOf="parent"
    cardView:layout_constraintEnd_toEndOf="parent"
    cardView:layout_constraintTop_toTopOf="parent"
    android:background="@drawable/ic_baseline_cloud_download_24"
    tools:background="@drawable/ic_baseline_cloud_download_24" />

方案2:使用ImageView专属的src属性(更推荐)

ImageView原生用于展示图片资源,使用android:src属性比设置background更适合图标展示场景,还可以配合scaleType调整图片缩放规则:

<androidx.appcompat.widget.AppCompatImageView
    android:elevation="2dp"
    android:id="@+id/imageb"
    android:layout_width="50dp"
    android:layout_height="50dp"
    cardView:layout_constraintBottom_toBottomOf="parent"
    cardView:layout_constraintEnd_toEndOf="parent"
    cardView:layout_constraintTop_toTopOf="parent"
    android:src="@drawable/ic_baseline_cloud_download_24"
    android:scaleType="centerInside" />

其他排查项

如果修改后仍无法显示图片,可以检查Adapter逻辑:

  • 是否在onBindViewHolder中正确给R.id.imageb设置资源/加载图片
  • 是否有代码动态修改了该ImageView的可见性、透明度或者布局参数
  • 确认drawable资源文件是否存在对应分辨率的版本,无资源加载异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 18:30:00