在EditText中居中显示Drawable和文本

5
我希望在EditText中让可绘制图案和文字居中。文字已经居中,但是可绘制图案没有。我想要的效果类似于这样: http://i.imgur.com/cacxR2C.jpg?1 请帮忙。这是目前我所做的:
 <EditText 
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="Username"
    android:layout_marginLeft="15dp"
    android:layout_marginRight="15dp"
    android:gravity="center_horizontal"
    android:drawableLeft="@drawable/lol2"
    />

当用户在EditText中输入内容时,如果输入的文本过长,则drawable应该自动向左移动。

4个回答

12

你可以像这样做

<RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:background="@android:drawable/editbox_background"
        >

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:hint="Username"
            android:background="@null"
            android:gravity="center"
            android:drawableLeft="@drawable/ic_launcher"
            />
    </RelativeLayout>

输入图像描述 输入图像描述


3
这对我有效:
<EditText
    android:id="@+id/searchET"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingStart="75dp"
    android:paddingEnd="75dp"
    android:inputType="text"
    android:singleLine="true"
    android:gravity="center"
    android:hint=" Username"
    android:drawableStart="@drawable/your_icon"
    android:background="@android:drawable/editbox_background"/>

这里的关键是对于宽度使用wrap_content,可以根据需要对文本进行对齐和视图居中设置,然后在编辑文本的两端添加填充。这样可以将可绘制对象推向文本的开头,同时仍然可以扩展编辑文本的背景。

2

替代

android:drawableLeft="@drawable/lol2"

建议使用

android:drawableStart="@drawable/lol2"


0

基本上,gravity 属性用于应用布局内容对齐的更改,因此您可以将重力放置在中心以使内容居中对齐,将 center_vertical 放置在左侧以使内容垂直对齐,将 gravity 放置在 center_horizontal 以使内容水平居中。例如:

android:gravity="center"

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