我尝试将自己的设计应用于edittext并在我的edittext启用,聚焦等时使用Android原生选择器。问题是每次触摸edittext并且本机选择器正在工作时,我的edittext变得更小。任何人都可以建议为什么会发生这种情况?这是我的代码片段:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_window_focused="false" android:state_enabled="true"
android:drawable="@android:drawable/edit_text"/>
<item
android:state_window_focused="false" android:state_enabled="false"
android:drawable="@android:drawable/edit_text"/>
<item
android:state_pressed="true"
android:drawable="@android:drawable/edit_text"/>
<item
android:state_enabled="true" android:state_focused="true"
android:drawable="@android:drawable/edit_text"/>
<item
android:state_enabled="true"
android:drawable="@android:drawable/edit_text"/>
<item
android:state_focused="true"
android:drawable="@android:drawable/edit_text"/>
<item
android:drawable="@drawable/my_border" />
</selector>
在这里我使用我的选择器:
<EditText
android:layout_height="37dip"
android:layout_width="fill_parent"
android:layout_marginLeft="7dip"
android:layout_marginRight="7dip"
android:background="@layout/selector_input"
android:paddingLeft="5dip"
android:paddingRight="5dip"
android:inputType="textEmailAddress">
</EditText>
这是my_border的代码:
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white"/>
<stroke android:width="1dip" android:color="@color/border_green"/>
<corners android:radius="4dp" />
<padding android:left="1dip" android:top="1dip" android:right="1dip" android:bottom="1dip" />
</shape>
P.S。按钮完全一样。
答案 0 :(得分:8)
起初,非常感谢您的帖子,帮了我很多, 但是你上面的代码(选择器的样本)对我来说不起作用:
所以我为其他人调整了它,所以如果有人搜索如何将文本字段标记为已选中:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_window_focused="false" android:state_enabled="true"
android:drawable="@drawable/bottom_line_normal"/>
<item
android:state_window_focused="false" android:state_enabled="false"
android:drawable="@drawable/bottom_line_normal"/>
<item
android:state_pressed="true"
android:drawable="@drawable/bottom_line_focus"/>
<item
android:state_enabled="true" android:state_focused="true"
android:drawable="@drawable/bottom_line_focus"/>
<item
android:state_enabled="true"
android:drawable="@drawable/bottom_line_normal"/>
<item
android:state_focused="true"
android:drawable="@drawable/bottom_line_focus"/>
<item
android:drawable="@drawable/bottom_line_normal"/>
</selector>
玩得开心:=)祝你好运:)
答案 1 :(得分:1)
由于没有人能够完全回答我的问题,我将自己回答。问题是每次触摸它时我的edittext变小了。这是因为Android中的原生edittext背景周围有一个透明区域。所以我使用了一个图层列表来创建我的背景,周围也有一个透明区域。这是代码:
<?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@drawable/transparent_background"
android:top="5dip"
android:right="5dip"
android:bottom="5dip"
android:left="5dip" />
<item
android:drawable="@drawable/my_border"
android:top="0dip"
android:right="0dip"
android:bottom="0dip"
android:left="0dip" />
</layer-list>
在我的选择器中而不是my_border
我使用此xml。
而已。容易做到,很难找到如何!
答案 2 :(得分:0)
<item
android:drawable="@drawablemy_border" />
1。你错过了斜线[/]吗?那个drawable my_border
答案 3 :(得分:0)
好的,在我尝试这些文件之后,当EditText未启用时,它不会使用你的选择器,并显示它的标准布局...所以添加
<item
android:state_enabled="false"
android:drawable="@android:drawable/edit_text"/>
你的选择器应该是解决方案