首页 > 解决方案 > android layout:这个标签和它的孩子可以被一个和一个复合drawable替换

问题描述

当我在特定的 XML 文件上运行布局时,我得到了这个:

此标签及其子项可以替换为一个和一个复合可绘制 包含 ImageView 和 TextView 的 LinearLayout 可以更有效地处理为复合可绘制(单个 TextView,使用 drawableTop、drawableLeft、drawableRight 和/或 drawableBottom 属性在文本旁边绘制一幅或多幅图像)。如果两个小部件通过边距彼此偏移,则可以将其替换为 drawablePadding 属性。在 Eclipse 插件中有一个 lint quickfix 可以执行此转换。问题 ID:UseCompoundDrawables

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:orientation="vertical">
    <ImageView
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:contentDescription="@string/todo"
        android:src="@drawable/logo" />

    <TextView
        android:id="@+id/textSlogan"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="@string/slogan"
        android:textColor="@android:color/white"></TextView>

</LinearLayout>

<LinearLayout
    android:orientation="horizontal"
    android:layout_alignParentBottom="true"
    android:weightSum="2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <info.hoang8f.widget.FButton
        android:id="@+id/btnSignUp"
        android:text="@string/signup"
        android:textColor="@android:color/white"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_margin="8dp"
        android:buttonColor="@color/btnSignUp"
        app:shadowColor="@android:color/black"
        app:shadowEnabled="true"
        app:shadowHeight="5dp"
        app:cornerRadius="4dp" />

</LinearLayout>

标签: javaandroid-studiodrawableandroid-drawable

解决方案


如果您将 ImageView 放在 TextView 旁边,建议将 ImageView 替换为这些 TextView 属性(drawableTop、drawableLeft、drawableRight 和/或 drawableBottom)在您的情况下,您可以替换它

    <ImageView
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:contentDescription="@string/todo"
    android:src="@drawable/logo" />

<TextView
    android:id="@+id/textSlogan"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:text="@string/slogan"
    android:textColor="@android:color/white"></TextView>

有了这个

<TextView
    android:id="@+id/textSlogan"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:text="@string/slogan"
    app:drawableStartCompat="@drawable/logo"
    android:textColor="@android:color/white"/>

推荐阅读