enforceMaterialTheme 强制执行材料主题
materialThemeOverlay 材质主题叠加
enforceTextAppearance 强制文本外观
boxBackgroundMode 框背景模式
boxStrokeColor 框描边颜色
passwordToggleDrawable 密码切换可绘制
passwordToggleTint 密码切换色调
passwordToggleContentDescription 密码 切换 内容 描述
endIconTint 结束图标色调
startIconTint 开始图标色调
counterTextAppearance 计数器本外观
counterOverflowTextAppearance 计数器溢出文本外观
errorTextAppearance 错误文本外观
helperTextTextAppearance 辅助文本文本外观
hintTextAppearance 提示文本外观
counterTextColor 计数器文本颜色
counterOverflowTextColor 计数器溢出文
本颜色
errorTextColor 错误文本颜色
helperTextTextColor 辅助文本颜色
hintTextColor 提示文本颜色
shapeAppearance 外形外观
shapeAppearanceOverlay 形状外观叠加
这个属性需要学习下
<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"
计数器的最大长度
app:counterMaxLength="11"
计数器正常状态样式
app:counterTextAppearance="@style/CounterStyle"
计数器越位状态样式
app:counterOverflowTextAppearance="@style/CounterOverflowStyle"
setError后 hint的颜色会变红,仅管设置了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"//设置hint的文本属性,改变hint文字的大小颜色等属性
android:inputType="textPassword"
app:endIconMode="password_toggle"
app:passwordToggleEnabled="true" (默认是眼睛,须配合 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" ?
这两个的用法待定
app:startIconTint="@color/cardview_dark_background"
app:startIconTintMode="src_in"
使输入框和下边的线始终左右对齐,输入框两边没有padding
让输入框和右边的自定义图标在一条线上,使用输入框的paddingTop和paddingBottom 相同,或都不设置(具体看theme中是否设置了)
android:paddingTop="1dp"
android:paddingBottom="1dp"
输入框没有背景和下划线,并且它和右边的自定义图标在一条线上,当单击【显示错误按钮时】让自定义图标保持当前状态不变(不变为红色的图标)
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" 模式下修改,输入框处于
得到焦点 或失去 焦点 或 错误情况下,让输入框下边的线始终处1个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图标和endIconMode已融合
一个快速的解决方案是使用填充将错误消息向左移动。
<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
更改材质TextInputLayout OutlinedBox散焦颜色
Android样式 - 主题叠加(theme overlay)
打造 Material 颜色主题 | 实现篇
android:textAlignment 参数解释
Android控件属性(2) - gravity、layout_gravity、textAlignment的区别
更改未聚焦的TextInputLayout的边框颜色或框描边
6.0新控件:TextInputLayout_TextInputEditText的使用
从登陆界面学习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);//输入至少两个字符才会提示
android-光标下划线
Android Material 常用组件详解(二)—— TextInputLayout 使用详解
Android Material Design(一)史上最全的材料设计控件大全
Android Material 常用组件详解(五)—— MaterialButton、MaterialButtonToggleGroup、ShapeableImageView 使用详解
Android Material组件使用详解