我的布局item.xml如下所示:

<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/item"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <ImageView
            android:id="@+id/icon"
            android:layout_width="24dp"
            android:layout_height="24dp"
            android:src=""
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"/>
    </androidx.constraintlayout.widget.ConstraintLayout>
</layout>

图像视图的src必须来自类似"@Drawable/ICON"的Include参数:

<include
   layout="@layout/item"
   app:drawableIdParameter="@drawable/icon"/>

如何将可绘制的id参数传递给布局?

推荐答案

在item.xml中添加类型为Drawable的变量:

<data>
    <import type="android.graphics.drawable.Drawable" />
    <variable
        name="drawableIdParameter"
        type="Drawable"/>
</data>

以如下方式访问ImageView中的变量:

android:src="@{drawableIdParameter}"

现在,通过以下方式传递参数:

<include
    layout="@layout/item"
    app:drawableIdParameter="@{@drawable/icon}"/>

Android相关问答推荐

如何清除导航抽屉中以前 Select 的项目(Jetpack Compose)

推断的类型是片段,但应为上下文

格雷德的两个星号是什么意思?非路径

Jetpack创作动画断断续续变化的观点

默认调度程序是否在协程中使用共享线程池?

如何在Android Studio的LinearLayout中禁用阴影

为什么我的 APK 中包含来自旧版 Android 支持库的类?

有没有办法让协程通道在接收时遵循特定的顺序而不是先进先出

使用 settings.gradle 文件将 Firebase 依赖项添加到 Android 项目

如何在 Jetpack Compose 中对数据类进行 Parcelize

在段的中心绘制饼图(甜甜圈图)的图例

Jetpack Compose 动画的行为是什么?

在 Compose 中停止键盘将顶部应用栏推离屏幕

从活动共享视图模型以使用 hilt 组合函数

如何在jetpack compose中通过lamda返回columnScope/RowScope

viewModel 的可变值状态不起作用

在 jetpack compose 中使用 .shadow 和 Button 会导致问题

可扩展性 Qt 5.15 Android

如何在 kotlin 的 android room DB 中设置一对多关系

单个用户可以在 Firebase 身份验证中将多个电话号码链接到他的帐户吗?