1.EditText不显示光标
开发的时候遇到有部分手机,小米系列以及华为部分手机不显示光标。
设置EditText属性
1 android:textCursorDrawable="@null" 2 android:cursorVisible="true"
可参考,http://stackoverflow.com/questions/15093758/edittext-cursor-is-invisible-in-android-4-0第一个回答。
附上我自己封装的一个方法
1 private final static String TAG = "EditTextCompat"; 2 3 /** 4 * 设置光标可见 <br/> 5 * 此处为了解决部分手机(如小米、华为)无法显示光标的问题,由于编译环境为2.3,导致部分函数无法调用,此处使用反射调用<br/> 6 */ 7 public static void setCursorVisible(EditText editText, Context context) { 8 editText.setCursorVisible(true); 9 // sdk 10 // 对应关系表,见http://developer.android.com/guide/topics/manifest/uses-sdk-element.html 11 if (android.os.Build.VERSION.SDK_INT >= 12) {// Android 3.1.x API12 12 // HONEYCOMB_MR1 13 String filedNameString = "mCursorDrawableRes"; 14 // mCursorDrawableRes 15 Class<? extends EditText> editTextClass = editText.getClass(); 16 Class<? extends TextView> textViewClass = null; 17 if (editTextClass != null) { 18 textViewClass = (Class<? extends TextView>) editTextClass 19 .getSuperclass(); 20 } 21 if (textViewClass != null) { 22 Field mCursorDrawableField = null; 23 try { 24 mCursorDrawableField = textViewClass 25 .getDeclaredField(filedNameString); 26 } catch (NoSuchFieldException e) { 27 // TODO Auto-generated catch block 28 Log.i(TAG, "NoSuchFieldException"); 29 e.printStackTrace(); 30 } 31 if (mCursorDrawableField != null) { 32 mCursorDrawableField.setAccessible(true); 33 try { 34 mCursorDrawableField.set(editText, 0); 35 36 } catch (IllegalArgumentException e) { 37 Log.i(TAG, "IllegalArgumentException"); 38 e.printStackTrace(); 39 } catch (NotFoundException e) { 40 Log.i(TAG, "NotFoundException"); 41 e.printStackTrace(); 42 } catch (IllegalAccessException e) { 43 Log.i(TAG, "IllegalAccessException"); 44 e.printStackTrace(); 45 } 46 } 47 48 } 49 } 50 } 51 }
2.AutoCompleteTextView在部分手机(如联想a860e)显示黑条。
见图
解决方案:在themes.xml设置一个主题,设置它的android:dropDownListViewStyle属性。
1 <style name="search_theme" parent="android:style/Theme.NoTitleBar"> 2 <item name="android:dropDownListViewStyle">@style/widget_dropdownlistview</item> 3 </style>
在styles.xml中定义下面字段。
1 <style name="widget_dropdownlistview" parent="android:style/Widget.Holo.ListView.DropDown"> 2 <item name="android:scrollbars">none</item> 3 <item name="android:divider">@color/white</item> 4 </style>
对需要用到AutoCompleteTextView的Activity设置主题(AndroidManifest.xml中设置)。
然后样式就OK了。
如图
可参考http://www.apkbus.com/android-126131-1-1.html
3.Dialog在部分手机上显示黑条
设置
1 <item name="android:windowContentOverlay">@null</item>
可参考。http://www.cnblogs.com/kaima/archive/2011/07/29/2121457.html