可绘制填充不起作用

Drawable padding doesn't work

我有以下 xml:

  <AutoCompleteTextView
                android:id="@+id/searchQuery"
                android:layout_width="match_parent"
                android:layout_height="30dp"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:layout_marginTop="10dp"
                android:drawablePadding="25dp"
                android:drawableRight="@drawable/ic_search_black_18dp"
                android:ems="8"
                android:focusable="true"
                android:focusableInTouchMode="true"
                android:imeOptions="actionSearch"
                android:inputType="text" />

我想让图标动起来,但是drawablePadding没有效果。怎么了?

根据您的代码,您为 AutoCompleteTextView 提供了静态高度,即 30dp。这就是可绘制填充不可见的原因。 如果您希望可绘制的填充可见,请尝试使用环绕内容。

drawablePadding 是可绘制对象和小部件其余部分之间的填充。 使用 padding 属性为您的小部件(包括可绘制对象)提供填充。

drawablePadding只有当widget view size足够小时才会生效

对于 drawableRightdrawableLeftdrawablePdding 仅在视图宽度为 wrap_content 时有效。

如果视图的宽度是 match_parent 或者它有一个特定的大宽度值或 minWidth,drawable 将位于边缘。

对于布局:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:drawablePadding="4dp"
    android:drawableRight="@drawable/red_dot_indicator"
    android:gravity="center"
    android:text="Hello World!" />

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:drawablePadding="4dp"
    android:drawableRight="@drawable/red_dot_indicator"
    android:gravity="center"
    android:text="Hello World! 2" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:drawablePadding="4dp"
    android:drawableRight="@drawable/red_dot_indicator"
    android:gravity="center"
    android:minWidth="200dp"
    android:text="Hello World! 3" />

截图如下: