如何在中心添加图标提示Edittext

时间:2017-08-18 07:58:36

标签: android xml android-edittext android-imageview

如何在中心添加图标提示edittext

我不知道设置

并且在xml文件中没有android:drawbleCenter

如何创建

感谢您的帮助;)

event.target

3 个答案:

答案 0 :(得分:3)

很遗憾,您无法在此EditText的中心设置可绘制,或者,您可以使用包含提示+图片的背景图片无论你在里面展示,

尝试以下示例。

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

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

您可以使用上面的XML代码

来实现这种类型的视图

enter image description here

答案 1 :(得分:0)

android:gravity="center_horizontal"添加到EditText

答案 2 :(得分:0)

我有一个解决方案

这是xml:

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="50dp">


    <EditText
        android:id="@+id/edt_search"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <TextView
        android:id="@+id/text_icon"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:drawableLeft="@android:drawable/ic_menu_search"
        android:drawablePadding="8dp"
        android:layout_gravity="center_horizontal"
        android:gravity="center_vertical"
        android:text="Search"
        android:textColor="#969696" />
</FrameLayout>
onCreate()

中的

edtSearch.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            textIcon.setVisibility(View.GONE);
        }

        @Override
        public void afterTextChanged(Editable s) {
            textIcon.setVisibility(s.length() == 0 ? View.VISIBLE : View.GONE);
        }
    });

试试吧!

相关问题