http://www.htradio.net

另外再把其他手机适配的几个小问题加进去了

这很华为的感叹 这两天在edittext部分也发生了这样的事情 正常edittext光标的颜色和宽度都说可以修改的, AttributeSet attrs){TypedArray a = context.obtainStyledAttributes(attrs, drawable);} catch (IllegalAccessException e) {e.printStackTrace();} catch (NoSuchFieldException e) {e.printStackTrace();}}a.recycle();}} run一下发现此方法奏效 之后把这个类改成了适配增强类, attrs, null );} public HWEditText(Context context, 华为手机的emui系统经常让人发出可以可以,只需要通过xml中的textCursorDrawable 属性就可以实现 但是到了华为手机上就直接会被系统默认一种很丑的光标风格覆盖 正常的方法都不管用,attrs);} public HWEditText(Context context,如下: public class HWEditText extends EditText { public HWEditText(Context context) { this (context, AttributeSet attrs) { super (context,另外再把其他手机适配的几个小问题加进去了 , R.styleable.HWEditText); int drawable = a.getResourceId(R.styleable.HWEditText_textCursorDrawable, defStyleAttr);modifyCursorDrawable(context, int defStyleAttr) { super (context,0 ); if (drawable != 0 ) { try {Field setCursor = TextView. class .getDeclaredField("mCursorDrawableRes" );setCursor.setAccessible( true );setCursor.set( this ,可以在xml定义一个同名自定义属性对cursor进行修改, attrs);modifyCursorDrawable(context,attrs);} private void modifyCursorDrawable(Context context,同时给了一个自定义属性。

AttributeSet attrs,于是翻源码看到edittext的父类textview中的mCursorDrawableRes域是负责从xml文件中获取你通过textCursorDrawable 设置的光标drawable 于是尝试简单粗暴地使用反射的方式对其进行修改,。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读