EditText中左侧drawable和文本之间的间隙

时间:2014-05-12 11:36:32

标签: android android-layout android-edittext

您好我正在EditText使用属性android:drawableLeft="@drawable/email_drawable"将drawable设置为左端,我正在尝试将其设置为drawable,但它不会在左侧drawable和text之间设置间隙。你能帮助我实现这个目标吗?

<EditText
    android:id="@+id/emailEditText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="@dimen/sign_up_edittext_vertical_top_margin"
    android:drawableLeft="@drawable/email_drawable"
    android:imeOptions="actionNext"
    android:inputType="textEmailAddress"
    android:singleLine="true" />

enter image description here

3 个答案:

答案 0 :(得分:118)

您应该将android:drawablePadding属性添加到EditText。具有10dp可绘制填充的示例布局:

<EditText
    android:id="@+id/emailEditText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="@dimen/sign_up_edittext_vertical_top_margin"
    android:drawableLeft="@drawable/email_drawable"
    android:imeOptions="actionNext"
    android:inputType="textEmailAddress"
    android:drawablePadding="10dp"
    android:singleLine="true" />

答案 1 :(得分:3)

向左或向右移动可绘制图标使用android:paddingLeftandroid:paddingRight不要使用android:drawablePadding

答案 2 :(得分:1)

使用android:drawableLeft / android:drawableRight属性设置任何drawable时,可以使用android:drawablePadding属性添加空格或间隙。

<EditText
    android:id="@+id/emailEditText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="@dimen/sign_up_edittext_vertical_top_margin"
    android:drawableLeft="@drawable/email_drawable"
    android:imeOptions="actionNext"
    android:drawablePadding="5dp" // set your padding or gap size here
    android:inputType="textEmailAddress"
    android:singleLine="true" />