一、android:textCursorDrawable
今天在小米2s(Android4.1.1)上测试app时,发现所有输入框都没了光标。其实是因为光标默认为白色,而我将EditText的背景置为透明,EditText外层容器背景设置为圆角白色背景。这样EditText的背景就是白色,和光标一样,所以就看不到光标。
最后用textCursorDrawable属性解决,可以用他来将光标设置为指定的图片,当设置为@null时,光标颜色会和文本颜色保持一致。但这个属性只支持3.1+。
http://developer.android.com/about/versions/android-3.1.html
Drawable text cursor
- You can now specify a drawable to use as the text cursor using the new resource attribute
textCursorDrawable
.
另外还可以通过android:cursorVisible属性来控制光标的显示与隐藏。
二、EditText软键盘控制
使用EditText默认设置时,屏幕横屏,弹出的软键盘会占满整个界面。可以通过android:imeOptions="flagNoExtractUi"来设置。android:imeOptions还可以设置软键盘右下角按键的显示内容,默认是回车键。比较奇怪的是如下面设置右下角的按键为搜索时,必须要和android:singleLine="true"一起用才能生效。这里做个记号,以后有时间再搞清楚。
android:imeOptions="flagNoExtractUi|actionSearch"
三、关于软键盘对UI的影响
可在配置文件中设置Activity的android: windowSoftInputMode属性,来改变软键盘弹出对界面的影响。其中adjustPan属性作用是软键盘弹出后如果遮挡住EditText,界面整体会上移(这样界面上方有一部分就会移到屏幕外不可见);反之,界面不会变化,软键盘会覆盖界面下方一部分。而另一个属性adjustResize则总是会改变界面大小,给软键盘腾出位置。
个人认为,实际开发中,应该根据界面的需要动态设置windowSoftInputMode属性来满足界面制作要求,如果windowSoftInputMode属性的作用无法达到界面制作要求,再去采纳一些“奇淫”技巧来解决。
参考文章:
http://blog.csdn.net/wf_zeng/article/details/9339431
http://developer.android.com/guide/topics/manifest/activity-element.html#exported