具有活动状态的Android EditText

时间:2015-06-18 16:34:55

标签: android

如何在EditText边框上有一条周围的线条,表明它目前在Android中处于焦点状态?什么是在全球范围内实现这一目标的最简单方法(影响所有布局)?

更新

我的styles.xml

_.pluck(list, 'ticker.ticker');

Edit_text_states.xml

  <style name="EditTextCustomHolo" parent="android:Widget.EditText">
        <item name="android:background">@drawable/edit_text_states</item>
    </style>

Edit_text_background.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:drawable="@drawable/edit_text_background" /> <!-- focused -->
    <item android:drawable="@drawable/edit_text_normal" />
</selector>

以上配置用于将白色背景设置为<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="false" android:state_pressed="false"> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!-- Bottom indicator color for the UNSELECTED tab state --> <item android:top="5dp" android:left="5dp" android:right="5dp"> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#ffffff" /> <stroke android:width="1dp" android:color="@color/text_color" /> </shape> </item> </layer-list> </item> </selector> 。如何在EditText中添加衬里边框?

2 个答案:

答案 0 :(得分:1)

您可以通过多种方式实现此效果,但最简单的方法是使用<selector>创建可绘制(XML)图像,并根据状态引用不同的图像(您不需要定义所有状态)。 Here's documentation(请参阅“州名单”一章),或随机SO's question on similar subject(自己搜索更多)。

答案 1 :(得分:1)

就像马辛所说,这是做到这一点的方式。 现在,为了影响所有布局,您应该覆盖自定义主题中的属性EdiText。

像这样的东西

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="android:editTextStyle">@style/MyEditTextStyle</item>
</style>

<style name="MyEditTextStyle" parent="@android:style/Widget.EditText">
    <item name="android:drawable">@drawable/custom_edit_text</item>
     ....
</style>