TextInputLayout學(xué)習(xí)

enforceMaterialTheme 強(qiáng)制執(zhí)行材料主題
materialThemeOverlay 材質(zhì)主題疊加
enforceTextAppearance 強(qiáng)制文本外觀
boxBackgroundMode 框背景模式
boxStrokeColor 框描邊顏色
passwordToggleDrawable 密碼切換可繪制
passwordToggleTint 密碼切換色調(diào)
passwordToggleContentDescription 密碼 切換 內(nèi)容 描述
endIconTint 結(jié)束圖標(biāo)色調(diào)
startIconTint 開始圖標(biāo)色調(diào)
counterTextAppearance 計(jì)數(shù)器本外觀
counterOverflowTextAppearance 計(jì)數(shù)器溢出文本外觀
errorTextAppearance 錯(cuò)誤文本外觀
helperTextTextAppearance 輔助文本文本外觀
hintTextAppearance 提示文本外觀
counterTextColor 計(jì)數(shù)器文本顏色
counterOverflowTextColor 計(jì)數(shù)器溢出文

本顏色
errorTextColor 錯(cuò)誤文本顏色
helperTextTextColor 輔助文本顏色
hintTextColor 提示文本顏色
shapeAppearance 外形外觀
shapeAppearanceOverlay 形狀外觀疊加






這個(gè)屬性需要學(xué)習(xí)下

<item name="boxStrokeErrorColor">@color/mtrl_error</item>
<item name="boxStrokeWidth">@dimen/mtrl_textinput_box_stroke_width_default</item>
<item name="boxStrokeWidthFocused">@dimen/mtrl_textinput_box_stroke_width_focused</item>


app:boxStrokeColor="@android:color/transparent"
app:boxBackgroundColor="@android:color/transparent"


<item name="boxStrokeWidth">2dp</item>
mtrl_textinput_outline_box_expanded_padding  
mtrl_textinput_box_corner_radius_small
mtrl_textinput_box_corner_radius_medium
mtrl_textinput_box_stroke_width_default
mtrl_textinput_box_stroke_width_focused
mtrl_textinput_box_label_cutout_padding




<attr name="startIconTintMode">
      <!-- The tint is drawn on top of the drawable.
           [Sa + (1 - Sa)*Da, Rc = Sc + (1 - Sa)*Dc] -->
      <enum name="src_over" value="3"/>
      <!-- The tint is masked by the alpha channel of the drawable. The drawable’s
           color channels are thrown out. [Sa * Da, Sc * Da] -->
      <enum name="src_in" value="5"/>
      <!-- The tint is drawn above the drawable, but with the drawable’s alpha
           channel masking the result. [Da, Sc * Da + (1 - Sa) * Dc] -->
      <enum name="src_atop" value="9"/>
      <!-- Multiplies the color and alpha channels of the drawable with those of
           the tint. [Sa * Da, Sc * Dc] -->
      <enum name="multiply" value="14"/>
      <!-- [Sa + Da - Sa * Da, Sc + Dc - Sc * Dc] -->
      <enum name="screen" value="15"/>
    </attr>















app:counterEnabled="true"

        計(jì)數(shù)器的最大長度  
        app:counterMaxLength="11"

        計(jì)數(shù)器正常狀態(tài)樣式 
        app:counterTextAppearance="@style/CounterStyle"  

        計(jì)數(shù)器越位狀態(tài)樣式 
        app:counterOverflowTextAppearance="@style/CounterOverflowStyle"








setError后 hint的顏色會變紅,僅管設(shè)置了app:hintTextColor="@android:color/darker_gray"
app:hintTextAppearance="@style/MyStyle"

<style name="MyStyle" parent="Theme.AppCompat.Light">
    <item name="colorControlNormal">#6F3FFF</item>
    <item name="colorControlActivated">#00FF00</item>
    <item name="android:textColor">#00FFFF</item>
    <item name="android:textSize">31sp</item>
  </style>

也不行!




app:hintTextAppearance="@style/MyStyle"http://設(shè)置hint的文本屬性,改變hint文字的大小顏色等屬性



android:inputType="textPassword"
app:endIconMode="password_toggle"
app:passwordToggleEnabled="true" (默認(rèn)是眼睛,須配合 EditText inputType=”textPassword”等密文type)
app:passwordToggleDrawable="@drawable/password_visible_invisible"


Value to use for the EditText's collapsed top padding in box mode.
作用是啥?沒試出來?
app:boxCollapsedPaddingTop="10dp" ?

這兩個(gè)的用法待定


app:startIconTint="@color/cardview_dark_background"
app:startIconTintMode="src_in"

使輸入框和下邊的線始終左右對齊,輸入框兩邊沒有padding


讓輸入框和右邊的自定義圖標(biāo)在一條線上,使用輸入框的paddingTop和paddingBottom 相同,或都不設(shè)置(具體看theme中是否設(shè)置了)

    android:paddingTop="1dp"
    android:paddingBottom="1dp"

輸入框沒有背景和下劃線,并且它和右邊的自定義圖標(biāo)在一條線上,當(dāng)單擊【顯示錯(cuò)誤按鈕時(shí)】讓自定義圖標(biāo)保持當(dāng)前狀態(tài)不變(不變?yōu)榧t色的圖標(biāo))

app:padding="0dip"
app:boxBackgroundMode="none"
app:errorIconDrawable="@null"
 app:endIconMode="clear_text"
 app:endIconDrawable="@drawable/ic_clock_black_24dp" 

<com.google.android.material.textfield.TextInputLayout
    android:layout_width="@dimen/material_textinput_default_width"
    android:layout_height="wrap_content"
    android:id="@+id/TextInputLayout_end"
    android:layout_margin="4dp"
    android:layout_gravity="center_horizontal"
    android:hint="@string/cat_textfield_label"
    app:errorEnabled="true"
    app:helperText="@string/cat_textfield_outlined_suffix_icon_helper_text"
    app:hintEnabled="false"
    app:helperTextEnabled="true"
    app:endIconMode="clear_text"
    app:endIconDrawable="@drawable/ic_clock_black_24dp"
    app:boxBackgroundMode="none"
    app:boxCollapsedPaddingTop="0dp"
    app:boxCornerRadiusBottomEnd="10dp"
    app:boxCornerRadiusBottomStart="10dp"
    app:boxCornerRadiusTopStart="10dp"
    app:boxCornerRadiusTopEnd="10dp"
      >
<!--    app:suffixText="@string/cat_textfield_suffix"-->
    <com.google.android.material.textfield.TextInputEditText
      android:paddingTop="1dp"
      android:paddingBottom="1dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="end"
        android:textAlignment="textStart"
        android:inputType="numberDecimal"/>
  </com.google.android.material.textfield.TextInputLayout>


app:boxBackgroundMode="filled" 模式下修改,輸入框處于
得到焦點(diǎn) 或失去 焦點(diǎn) 或 錯(cuò)誤情況下,讓輸入框下邊的線始終處1個(gè)dp的高度,并且 顏色不變,


app:boxStrokeColor="@android:color/transparent"
    app:boxBackgroundColor="@android:color/transparent"
    app:boxStrokeErrorColor="@android:color/transparent"
    app:boxStrokeWidth="1dp"
    app:boxStrokeWidthFocused="1dp"
    app:boxBackgroundMode="filled"












EditText setError圖標(biāo)和endIconMode已融合

一個(gè)快速的解決方案是使用填充將錯(cuò)誤消息向左移動(dòng)。

<com.google.android.material.textfield.TextInputEditText
                android:id="@+id/passwordEditText"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:paddingRight="40dp"
                android:inputType="textPassword" />
看起來像這樣。



這種方式測試過不行,


TextInputLayout TextInputEditText

更改材質(zhì)TextInputLayout OutlinedBox散焦顏色

Android樣式 - 主題疊加(theme overlay)
打造 Material 顏色主題 | 實(shí)現(xiàn)篇

android:textAlignment 參數(shù)解釋

Android控件屬性(2) - gravity、layout_gravity、textAlignment的區(qū)別

更改未聚焦的TextInputLayout的邊框顏色或框描邊

6.0新控件:TextInputLayout_TextInputEditText的使用

從登陸界面學(xué)習(xí)TextInputLayout

 private  String[] accounts = { "18236593333", "13463373657", "18235784765", "18234637686" };

        ArrayAdapter<String> arrayAdapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,accounts);
        mAccountView.setAdapter(arrayAdapter);//輸入至少兩個(gè)字符才會提示


android-光標(biāo)下劃線



Android Material 常用組件詳解(二)—— TextInputLayout 使用詳解


Android Material Design(一)史上最全的材料設(shè)計(jì)控件大全

Android Material 常用組件詳解(五)—— MaterialButton、MaterialButtonToggleGroup、ShapeableImageView 使用詳解

Android Material組件使用詳解

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容