溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

【進(jìn)階篇】Android學(xué)習(xí)筆記——TextInputLayout

發(fā)布時(shí)間:2020-06-10 15:52:31 來源:網(wǎng)絡(luò) 閱讀:706 作者:wisekingokok 欄目:移動(dòng)開發(fā)

Google為了統(tǒng)一Android系統(tǒng)的視覺和使用體驗(yàn)而提出的一個(gè)新的標(biāo)準(zhǔn),這就是Android Design。為了讓舊的系統(tǒng)也能兼容新的標(biāo)準(zhǔn),Google提供了Android Design Support Library包,在此包中,Android提供了很多新的控件。而TextInputLayout正是來自于Android Design Support Library包。

TextInputLayout是一個(gè)新的布局,從繼承樹上看,它繼承自LinearLayout,但是它并不支持android:orientation屬性,因?yàn)門extInputLayout和ScrollView一樣,只能在其中遷入唯一的控件。另外從TextInputLayout這個(gè)布局的名稱可以猜出,這是一個(gè)專門針對(duì)文本輸入動(dòng)作而設(shè)計(jì)的布局。所以TextInputLayout一般是EditText或者AutoCompleteTextView這樣的控件,TextInputLayout為這些控件提供了體驗(yàn)更好的顯示和體驗(yàn)效果。

這里以一個(gè)包含EditText的示例,示范一下TextInputLayout的用法和效果。其布局文件如下:

<android.support.design.widget.TextInputLayout    android:layout_width="match_parent"    android:layout_height="wrap_content"    app:counterEnabled="true"    app:counterMaxLength="5"    app:hintAnimationEnabled="true"    app:counterOverflowTextAppearance="@android:style/TextAppearance.DeviceDefault.Large">    <EditText        android:id="@+id/password"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:inputType="textPassword"        android:maxLines="1"        android:hint="@string/prompt_password"        android:singleLine="true" /></android.support.design.widget.TextInputLayout>

其中的app是為了使用Android Design Support Library包提供的新屬性,而進(jìn)行的一個(gè)申明,只需要在布局文件的根元素上引入以下的命名空間即可。

xmlns:app="http://schemas.android.com/apk/res-auto"

布局文件設(shè)置完畢,運(yùn)行效果如下圖所示:

【進(jìn)階篇】Android學(xué)習(xí)筆記——TextInputLayout

從運(yùn)行結(jié)果可以看到,視覺效果明顯比單純的只用EditText好了不少。這里TextInputLayout做了一下幾件事:

  1. 自動(dòng)計(jì)算出一個(gè)Padding,為動(dòng)畫,錯(cuò)誤信息以及字?jǐn)?shù)統(tǒng)計(jì)留出足夠的顯示空間。

  2. 當(dāng)EditText獲取到焦點(diǎn)時(shí),以動(dòng)畫的方式,將EditText中的hint移動(dòng)到左上方,避免了單獨(dú)使用EditText時(shí),提示信息在獲取到焦點(diǎn)后就不顯示的糟糕體驗(yàn)。

  3. 統(tǒng)計(jì)EditText字?jǐn)?shù),并動(dòng)態(tài)更新顯示。

在TextInputLayout中,重要的屬性有以下幾個(gè):

 

  • counterEnabled:是否啟用計(jì)數(shù)器

  • counterMaxLength:?jiǎn)⒂糜?jì)數(shù)器時(shí),最大字?jǐn)?shù)限制(僅僅用做顯示)

  • counterOverflowTextAppearance:當(dāng)字?jǐn)?shù)超出計(jì)數(shù)器的最大限制時(shí)的字體格式

  • hintAnimationEnabled:是否啟用hint動(dòng)畫效果

  • errorEnabled:是否顯示錯(cuò)誤信息

  • errorTextAppearance:錯(cuò)誤信息的字體格式

 

 

 

 

 歡迎轉(zhuǎn)載,轉(zhuǎn)載同時(shí)請(qǐng)尊重版權(quán),附上本文原文鏈接:點(diǎn)擊這里

 

 

==============================

 更多內(nèi)容,歡迎查看本人博客:林彥君的博客

==============================


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI