我正在使用ActionBarSherlock& HoloEverywhereLib。我的分钟和目标SDK是相同的(10 / 2.3.3)。这只是我可以快速将其移植到亚马逊Kindle& amp; BB10使用他们拥有的Android运行时(已经将这个设置用于另一个应用程序,它没有问题)。应用程序应该尽可能接近ICS / JB。
对于我的EditTexts,我给他们一个Girgerbread / iOS(圆角,但没有阴影)看他们
几个星期前,有人提到我要抓住Gingerbread的drawables并将它们用于我的EditTexts。但我开始使用我在S / O找到的另一个答案,非常简单:<EditText
background:"@drawable/edittext_round_white"
..../>
&安培;我的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>
现在,当我运行应用程序时,有两件事情是不对的
a)根本没有“焦点”(我知道我需要实现这个,这是问题的关键点)
b)光标在我的edittext中根本没有出现(灰色垂直线暗示输入所指向的edittext中的位置)
对于a) 我假设我要使用某种选择器或列表,对吧?怎么样?我是Android的样式新手,任何帮助将不胜感激。我唯一要改变的是笔触颜色。
对于b)如何让光标显示?
非常欢迎任何提示/链接/等!
答案 0 :(得分:24)
我建议使用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>
使用选择器的方式与代码中使用的相同,将其设置为EditText的背景。
图片:
twitter_im_edittext_focused.9.png
twitter_im_edittext_normal.9.png
有关您可以找到的{9}}的NinePatch图像的更多信息。
希望它有所帮助。
答案 1 :(得分:7)
接受答案的简短版本
<?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>
答案 2 :(得分:0)
我认为问题在于您的光标位于editText框的左侧“边框/墙”上方,并且由于重叠而无法看到。
我所做的是为文本添加一些填充,这使光标和文本更加“向内”,然后变得可见。
尝试将此添加到您的editText:
android:paddingLeft="8dp"