2015-09-29 116 views
1

我有以下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没有效果。哪里不对?

+2

你想究竟是如何移动的图标? 'drawablePadding'应该只改变文本和图标之间的距离(根据文档),而不是图标和视图边缘之间的距离(因为有'padding'选项) – krossovochkin

+0

我想改变图标和边缘之间的距离 – Tony

+1

然后尝试使用'android:paddingBottom'或Top/Right/Left – krossovochkin

回答

5

drawablePadding是您的小部件的drawable和其余部分之间的填充。 使用padding属性为您的小工具提供填充,包括可绘制的。 drawable

0

根据你的代码,你给你的AutoCompleteTextView静态高度,即30dp。这就是可绘制填充不可见的原因。 如果您希望可绘制填充可见,请尝试使用包装内容。

+1

在这种情况下,height与drawablePadding没有任何关系。图标位于文本右侧('drawableRight'),所以drawablePadding只能增加宽度(但实际上宽度不会因'match_parent'增加 - 它已经有最大宽度),但不是高度。 – krossovochkin

0

drawablePdding仅当视图尺寸足够小时才起作用。

对于drawableRightdrawableLeft,drawablePdding只适用于视图的宽度为wrap_content

如果视图的宽度为match_parent或者它对于宽度或最小宽度具有特定的较大值,则绘图将位于边缘上。

对于布局:

<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" /> 

的截图是这样的: enter image description here