日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android下EditText中的字体不统一问题

發布時間:2024/4/15 Android 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android下EditText中的字体不统一问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

好久沒寫,今天心情好略記下解決的某bug

在一個登錄界面有帳號和密碼兩個EditText,但是卻發現兩個EditText的hint的英文字體不同,看著極不協調。但是兩個EditText都沒有特意設置過hint的字體啊···

經實驗,把密碼欄的android:password="true"屬性去掉后字體變一樣。應該是這個屬性的影響。

經查,hint字體受EditText的text字體影響,即受android:typeface的影響。android:typeface有三個取值:“sans”,“serif”,“monospace”,而缺省的話普通EditText是Sans,想必密碼框的缺省不同的原因。然后將兩個EditText設置相同typeface,但是發現能正常改變帳號欄的hint字體,但是密碼欄hint字體一直保持是monospace不變。

果斷看源碼,發現在EditText的初始化中有這么一段:

if (password) {

??? setTransformationMethod(PasswordTransformationMethod.getInstance());

??? typefaceIndex = MONOSPACE;

}

果然密碼框初始化會強制設置字體為MONOSPACE,這樣解決就簡單了,在代碼實現中加上:

idEdit.setTypeface(Typeface.SANS_SERIF);

passEdit.setTypeface(Typeface.SANS_SERIF);

這樣字體就和諧了~


EditText password = (EditText) findViewById(R.id.register_password_text);
password.setTypeface(Typeface.DEFAULT);
password.setTransformationMethod(new PasswordTransformationMethod());

此外需要去除xml中的android:password="true"語句


總結

以上是生活随笔為你收集整理的Android下EditText中的字体不统一问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。