Dav*_*mes 14 android state styles shape android-edittext
我正在开始一个新的应用程序,我使用ActionBarSherlock和HoloEverywhereLib.我的min和目标SDK是相同的(10/2.3.3).这只是我可以使用他们拥有的Android运行时快速将其移植到亚马逊Kindle和BB10(已经使用此设置为另一个应用程序,它没有问题).应用程序应该尽可能接近ICS/JB.
对于我的EditTexts,我给他们一个Girgerbread/iOS(圆角,但没有阴影)看他们
几个星期前有人向我提到要抓住Gingerbread的drawable并将它们用于我的EditTexts.但我开始使用我在S/O找到的另一个答案,非常简单:
<EditText
background:"@drawable/edittext_round_white"
..../>
Run Code Online (Sandbox Code Playgroud)
&我的edittext_round_white.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
>
<corners android:radius="8dp"/>
<stroke android:width="1dp"
android:color="#444"/>
<solid android:color="#FFFFFF" />
</shape>
Run Code Online (Sandbox Code Playgroud)
现在,当我运行应用程序时,有两件事情是不对的
a)根本没有"焦点"(我知道我需要实现这一点,这是问题的关键)
b)光标在我的edittext中根本没有出现(灰色垂直线暗示输入所指向的edittext中的位置)
对于a)我假设我要使用某种选择器或列表,对吧?怎么样?我是Android的样式新手,任何帮助将不胜感激.我唯一要改变的是笔触颜色.
对于b)如何让光标显示?
这里的任何提示/链接/等都非常受欢迎!
小智 27
我建议使用NinePatch图像来自定义EditText.这是基于我的代码的示例:
选择器:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:state_enabled="true"
android:drawable="@drawable/twitter_im_edittext_normal" />
<item android:state_window_focused="false" android:state_enabled="false"
android:drawable="@drawable/twitter_im_edittext_normal" />
<item android:state_pressed="true" android:drawable="@drawable/twitter_im_edittext_normal" />
<item android:state_enabled="true" android:state_focused="true" android:drawable="@drawable/twitter_im_edittext_focused" />
<item android:state_enabled="true" android:drawable="@drawable/twitter_im_edittext_normal" />
<item android:state_focused="true" android:drawable="@drawable/twitter_im_edittext_focused" />
<item android:drawable="@drawable/twitter_im_edittext_normal" />
</selector>
Run Code Online (Sandbox Code Playgroud)
使用与代码中使用的方法相同的选择器,将其设置为EditText的背景.
图片:
twitter_im_edittext_focused.9.png
twitter_im_edittext_normal.9.png
有关NinePatch图像的更多信息,请点击此处.
希望能帮助到你.
接受答案的简短版本
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="true" android:state_focused="true"
android:drawable="@drawable/edit_text_background_focused" />
<item android:drawable="@drawable/edit_text_background_normal" />
</selector>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24774 次 |
| 最近记录: |