Android Material TextInputLayout使用详解

Material Design 系列

  1. Material Design UI方案使用讲解
  2. Material TextInputLayout使用详解
  3. Material ShapeableImageView 使用详解

博客创建时间:2022.05.23
博客更新时间:2022.06.06

以Android studio build=7.0.0,SDKVersion 31来分析讲解。如图文和网上其他资料不一致,可能是别的资料版本较低而已。


前言

TextInputLayout 主要是作为 EditText 的容器,从而为 EditText 生成一个浮动的 Label,当用户点击 EditText 的时候,EditText 中的 hint 字符串会自动移到 EditText 的左上角。

在这里插入图片描述


hint自动上浮

如图当点击EditText控件时,hint内容会自动往上漂浮,代码如下。

    <com.google.android.material.textfield.TextInputLayout
        android:id="@+id/userInputLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="UserName">

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="14sp" />

    </com.google.android.material.textfield.TextInputLayout>

错误自动提示


    app:errorEnabled="true"
    app:counterEnabled="true"
    app:counterMaxLength="8"
    app:hintTextAppearance="@style/hintAppearence"
                
		// 开启错误提示
		errorEnabled;
		// 开启计数
		counterEnabled;
		// 设置输入最大长度
		counterMaxLength;
		//浮动标签样式 
		hintTextAppearance


密码可见性切换

一行代码搞定密码的可见性切换,再也不用ImageView 方案来实现了。

app:passwordToggleEnabled="true"

如果想替换密码可见性的图标,可以如下配置

app:passwordToggleDrawable="@drawable/account_pwd_visible_btn_bg"
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/ic_icon_outline_eye" android:state_checked="true" />
    <item android:drawable="@drawable/ic_icon_outline_eye_close" android:state_checked="false" />
</selector>

常用API

常用方法

方法介绍
setCounterEnabled在此布局中是否启用了字符计数器功能。
setCounterMaxLength设置要在字符计数器上显示的最大长度。
setBoxBackgroundColorResource设置用于填充框的背景色的资源。
setBoxStrokeColor设置轮廓框的笔触颜色。
setCounterOverflowTextAppearance使用指定的 TextAppearance 资源设置溢出字符计数器的文本颜色和大小。
setCounterOverflowTextColor使用 ColorStateList 设置溢出字符计数器的文本颜色。(此文本颜色优先于 counterOverflowTextAppearance 中设置的文本颜色)
setCounterTextAppearance使用指定的 TextAppearance 资源设置字符计数器的文本颜色和大小。
setCounterTextColor使用 ColorStateList 设置字符计数器的文本颜色。(此文本颜色优先于 counterTextAppearance 中设置的文本颜色)
setErrorEnabled在此布局中是否启用了错误功能。
setErrorTextAppearance设置来自指定 TextAppearance
setErrorTextColor设置错误消息在所有状态下使用的文本颜色。
setHelperText设置将在下方显示的帮助消息 EditText。
setHelperTextColor设置辅助状态在所有状态下使用的文本颜色。
setHelperTextEnabled在此布局中是否启用了辅助文本功能。
setHelperTextTextAppearance设置指定 TextAppearance 资源中的辅助文本的文本颜色和大小。
setHint设置要在浮动标签中显示的提示(如果启用)。
setHintAnimationEnabled是否获取焦点的时候,hint 文本上移到左上角开启动画。
setHintEnabled设置是否在此布局中启用浮动标签功能。
setHintTextAppearance从指定的 TextAppearance 资源设置折叠的提示文本的颜色,大小,样式。
setHintTextColor从指定的 ColorStateList 资源设置折叠的提示文本颜色。
setPasswordVisibilityToggleEnabled启用或禁用密码可见性切换功能。

XML属性

属性介绍
app:hintTextAppearance=“@style/HintAppearance”浮动标签字体样式
app:errorTextAppearance=“@style/ErrorAppearance”错误提示字体样式
app:counterTextAppearance=“@style/CounterAppearance”没有超过最大字数时统计字体样式
app:counterOverflowTextAppearance=“@style/CounterOverflowAppearance”超过最大字数时统计字体样式
app:passwordToggleDrawable密码可见切换图标
app:passwordToggleEnabled控制是否显示密码可见切换图标
app:counterOverflowTextAppearance设置超出字符数后提示文字的颜色,如果不设置默认为@color/colorAccent的颜色
boxBackgroundMode框背景的模式,可以是filled,outline或none。
boxBackgroundColor文本字段背景的颜色。默认启用的颜色colorOnSurface用于填充的框文本字段和透明的框文本字段。
boxStrokeColor文本字段背景周围的笔触颜色。轮廓框文本字段的默认颜色是(在默认状态下)colorOnSurface,填充的框文本字段将被忽略。
hintTextColor/ errorTextColor/ counterTextColor各种不同的文本颜色。
shapeAppearance文本字段背景的形状外观。默认值为shapeAppearanceSmallComponent

总结

Material Design 提供了大量的UI控件且丰富了UI风格,这里有我总结的一系列Material控件的使用总结,欢迎阅读。

一些常见的不同蒙层方案总结于此,希望对爱学习的你有帮助!
有兴趣可以查看源码源码Demo>>
在这里插入图片描述


相关链接

  1. Material Design UI方案使用讲解
  2. Material TextInputLayout使用详解
  3. Material ShapeableImageView 使用详解

扩展链接:

  1. Android CameraX 使用入门
  2. Android 今日头条屏幕适配详细使用攻略
  3. Android 史上最新最全的ADB及命令百科,没有之一

博客书写不易,您的点赞收藏是我前进的动力,千万别忘记点赞、 收藏 ^ _ ^ !

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android TextInputLayout是一个支持Material Design风格的输入框容器,它可以用来包装任何EditText或EditText的子类,提供了一些功能,如错误提示、计数器、密码可见性切换等。 TextInputLayout的主要功能有: 1.错误提示:当用户输入无效数据时,可以显示错误消息。 2.计数器:可以显示已输入字符的数量和最大字符数量。 3.密码可见性切换:可以在明文和密码模式之间切换。 4.动画效果:包含了一些动画效果,如标签浮动和错误消息上移等。 使用TextInputLayout,需要在XML中将EditText包装在TextInputLayout中,并在TextInputLayout中设置相关属性。例如: ``` <com.google.android.material.textfield.TextInputLayout android:id="@+id/textInputLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Enter your name"> <com.google.android.material.textfield.TextInputEditText android:id="@+id/editText" android:layout_width="match_parent" android:layout_height="wrap_content"/> </com.google.android.material.textfield.TextInputLayout> ``` 在代码中,可以使用以下方法来设置错误消息、计数器等: ``` // 设置错误消息 textInputLayout.setError("Invalid input"); // 显示计数器 textInputLayout.setCounterEnabled(true); textInputLayout.setCounterMaxLength(50); // 密码可见性切换 textInputLayout.setEndIconMode(TextInputLayout.END_ICON_PASSWORD_TOGGLE); ``` 总之,TextInputLayout是一个非常有用的控件,可以提高Android应用程序的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值