在安卓中实现自定义EditText样式

6
我正在为Android创建自定义编辑文本,通过在Drawable资源中添加XML,如下所示:

我正在为Android创建自定义编辑文本,通过在Drawable资源中添加XML,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <!-- Border -->
    <item>
        <shape>
            <solid android:color="@color/gray"></solid>
        </shape>
    </item>
    <!-- Body -->
    <item 
          android:bottom="1dp"
          android:right="0dp"
          android:left="0dp"
          android:top="0dp">
        <shape>
            <solid android:color="@color/white"></solid>
        </shape> 
    </item>
</layer-list>


 <EditText
                android:id="@+id/edt_password"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:background="@drawable/edittext"
                android:digits="1234567890"
                android:ellipsize="end"
                android:focusableInTouchMode="true"
                android:inputType="numberPassword"
                android:singleLine="true"
                android:textColor="@color/dark" />

我希望将EditText设置为单行显示。但是当我实现时,EditText的上边框会在几秒钟内出现,然后消失... 我真的不知道这是为什么...

1个回答

1
创建 res/drawable/custom_edittext_style.xml 文件。
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:state_enabled="true" android:drawable="@drawable/apptheme_textfield_default_holo_light" />
<item android:state_window_focused="false" android:state_enabled="false" android:drawable="@drawable/apptheme_textfield_disabled_holo_light" />
<item android:state_enabled="true" android:state_focused="true" android:drawable="@drawable/apptheme_textfield_activated_holo_light" />
<item android:state_enabled="true" android:state_activated="true" android:drawable="@drawable/apptheme_textfield_focused_holo_light" />
<item android:state_enabled="true" android:drawable="@drawable/apptheme_textfield_default_holo_light" />
<item android:state_focused="true" android:drawable="@drawable/apptheme_textfield_disabled_focused_holo_light" />
<item android:drawable="@drawable/apptheme_textfield_disabled_holo_light" />

将所有所需的可绘制文件添加到drawable文件夹中。
 <EditText
            android:id="@+id/edt_password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:background="@drawable/custom_edittext_style"
            android:digits="1234567890"
            android:ellipsize="end"
            android:focusableInTouchMode="true"
            android:inputType="numberPassword"
            android:singleLine="true"
            android:textColor="@color/dark" />

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