在TextInputLayout官方文檔API中描述了它是一種新的繼承自LinearLayout的布局,讓我們使用時(shí)里面只能包含一個(gè)EditText或者其子類的控件,該布局可以通過(guò)設(shè)置hint和Error顯示浮動(dòng)標(biāo)簽.接下來(lái)我們看看布局文件
使用方法
XML中的一些屬性標(biāo)簽
- app:hintEnable 浮動(dòng)標(biāo)簽樣式是否開(kāi)啟(默認(rèn)是開(kāi)啟的)
- app:errorEnabled 設(shè)置是否顯示一個(gè)錯(cuò)誤信息,布爾值
- app:hintAnimationEnabled 浮動(dòng)標(biāo)簽顯示與隱藏之間有哦一個(gè)過(guò)度動(dòng)畫(huà)(默認(rèn)是開(kāi)啟的)
- app:hintTextAppearance 設(shè)置提示文字的樣式(注意這里是運(yùn)行了動(dòng)畫(huà)效果之后的樣式,這里要通過(guò)主題進(jìn)行更改)
app:hintTextAppearance="@style/hintAppearance" <style name="hintAppearance" parent="TextAppearance.AppCompat"> <item name="android:textSize">14sp</item> <item name="android:textColor">#ffee00</item> </style>
- app:counterEnabled 是否增加后面的字?jǐn)?shù)統(tǒng)計(jì);但是要設(shè)置最大值
- app:counterMaxLength 設(shè)置輸入的最大值
- app:passwordToggleEnabled 是否顯示后面的眼睛圖標(biāo)
- app:passwordToggleDrawable 可以替換眼睛圖標(biāo)成我們自己的
- app:passwordToggleTint 給設(shè)置的眼睛圖標(biāo)設(shè)置顏色(這個(gè)必須在EditText或者其子類中設(shè)置** android:inputType="textPassword"**為密碼樣式的才能看見(jiàn)圖標(biāo))
- app:passwordToggleTintMode 控制密碼可見(jiàn)開(kāi)關(guān)圖標(biāo)的背景顏色混合模式
- app:passwordToggleContentDescription 該功能是為Talkback或其他無(wú)障礙功能提供的。
- app:counterOverflowTextAppearance 設(shè)置計(jì)算器越位后的文字顏色和大小(通過(guò)style進(jìn)行設(shè)置的)
- app:counterTextAppearance 設(shè)置正常情況下的計(jì)數(shù)器文字顏色和大小(通過(guò)style進(jìn)行設(shè)置的)
- app:errorTextAppearance 錯(cuò)誤提示的文字大小和顏色(通過(guò)style進(jìn)行設(shè)置的)
這里有一個(gè)很重要的問(wèn)題要注意一下:
- TextInputLayout只能又一個(gè)子類,并且這個(gè)子類必須是EditText的子類
- android:hint 不要兩個(gè)都設(shè)置,只需要設(shè)置一個(gè),如果你要是設(shè)置兩個(gè)的話,兩個(gè)會(huì)重疊放在那里,會(huì)導(dǎo)致動(dòng)畫(huà)執(zhí)行了,橫杠上還有文字
- 如過(guò)你想改變整體的顏色只要重新寫(xiě)一個(gè)主題的顏色就可以了
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorAccent">#3498db</item> </style>
一些常見(jiàn)的處理
設(shè)置錯(cuò)誤的提示信息
TextInputLayout.setError("只是展示下錯(cuò)誤的顯示樣式");
if (!mLayoutTop.getEditText().getText().toString().equals("123456")) {
mLayoutTop.setError("賬號(hào)信息填寫(xiě)錯(cuò)誤");
mInputEditTextTop.setError("只是展示下錯(cuò)誤的顯示樣式");//這個(gè)好丑啊,我是不會(huì)用了
}
其實(shí)這些判斷的話,和之前的EditText都是一樣的,所以在這里就不說(shuō)了