EditText提示文本和图标

3

我正在尝试创建一个带有图标和文本的EditText,作为提示文字出现。但是提示文字会居中显示,我想要提示文字左对齐,这样提示图标和文字之间只应该有一个制表符(空格)。

以下是我的尝试:

<EditText
        android:id="@+id/emailAddressInput"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:ems="10"
        android:layout_marginTop ="20dp"
        android:layout_marginLeft ="20dp"
        android:layout_marginRight ="20dp"
        android:background="@drawable/rounded_edge"
        android:drawableLeft="@drawable/email_box"
        android:hint="e-mail address"
        android:gravity="left|center_vertical"
        android:maxLength="100"
        android:inputType="textEmailAddress" />

有什么办法可以实现我想要的结果吗?
3个回答

11

ImageSpan是实现此目的的最佳方式。

但您需要通过Java代码来完成它。

ImageSpan imageHint = new ImageSpan(mContext, R.drawable.icon_hint);
SpannableString spannableString = new SpannableString("_I'm the hint");
spannableString.setSpan(imageHint, 0, 1, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
mEditor.setHint(spannableString);

好的回答。你能告诉我如何通过xml实现吗? - Akanksha Rathore

3

好的,经过一些调试,我发现图片大小占用了很多空间,我将图片裁剪成较小的尺寸,问题得到解决。


0

在你的EditText中添加

android:gravity="top"

属性。


我已经尝试过这个,但没有任何不同。它将我的提示文本定位到右侧。 - SSC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接