Edittext相关

更改下划线的颜色 普通来说,对当前页面/window设置主题,主题里设置colorAccent就是Edittext的取色
如果要与当前主题颜色不同,则采用单独主题,内部覆盖两个属性:
参考:
http://www.codexpedia.com/android/setting-edittext-underline-color-in-android/

#dc8f41 #d11472

更改光标颜色 主要是适配华为手机,需要在代码里发射并复写属性:
public class CommonEditText extends android.support.v7.widget.AppCompatEditText { public CommonEditText(Context context) { this(context,null); }public CommonEditText(Context context, AttributeSet attrs) { super(context, attrs); modifyCursorDrawable(context,attrs); }public CommonEditText(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); modifyCursorDrawable(context,attrs); }protected void modifyCursorDrawable(Context context, AttributeSet attrs){ TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CommonEditText); int drawable = a.getResourceId(R.styleable.CommonEditText_textCursorDrawable,R.drawable.et_cursor_aku); if(drawable != 0) { try {Field setCursor = TextView.class.getDeclaredField("mCursorDrawableRes"); setCursor.setAccessible(true); setCursor.set(this, drawable); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (NoSuchFieldException e) { e.printStackTrace(); } } a.recycle(); } }

样式:
@drawable/et_cursor_aku 5dp 5dp true//et_cursor_aku:

edittext与软键盘 【Edittext相关】dialog和activity都是window,但是activity可以通过adjust-resize来灵活适应软键盘弹起,通过监听布局高度改变而拿到软键盘弹起与收起的回调,但是dialog无法做到. 所以,在ui设计为dialog样式时,应该采用dialog样式的activity实现.

    推荐阅读