背景:git
1. 按照設計師指定在EditText中要顯示的Hint太長了,致使沒法顯示完整(hint內容:取現最低限額100元),效果圖以下:github
2. EditText不支持設置hint的字體大小(只能和輸入框字體一致),後來在網上找到經過SpannableString設置hint,就能指定字體大小了。代碼以下:bash
/**
* 設置EditText的hint字體大小
* @param editText EditText控件
* @param hintText hint內容
* @param size hint字體大小,單位爲sp
*/
public static void setEditTextHintWithSize(EditText editText, String hintText, @Dimension int size) {
if (!TextUtils.isEmpty(hintText)) {
SpannableString ss = new SpannableString(hintText);
//設置字體大小 true表示單位是sp
AbsoluteSizeSpan ass = new AbsoluteSizeSpan(size, true);
ss.setSpan(ass, 0, ss.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
editText.setHint(new SpannedString(ss));
}
}
複製代碼
3.可是這個方案在小米手機上出現了光標沒法對齊的問題,問題截圖以下:字體
出現問題機型(沒有驗證小米全部機型):ui
1)小米6this
2)紅米Note 4Xspa
解決方案:.net
1.在網上找了各類方案,其中一種是定製光標,可是效果仍是有問題。設計
2.最終在同事的建議下,採用在EditText上覆蓋一層TextView的方式,爲了方便複用,對控件進行了封裝。code
調用方式:
new EditTextHint(this, "RelativeLayout中爲EditText添加hint", R.id.editText).showHint();
附錄:
在EditText中設置hint的大小和顏色,光標粗細和顏色:blog.csdn.net/qq_24697659… EditText 代碼設置光標顏色(反射):blog.csdn.net/qq_30247473… 小米手機EditText光標問題:www.jianshu.com/p/c92299664…
安卓開發技術分享: www.jianshu.com/p/442339952…