3分钟学会TextInputLayout

如题所述

第1个回答  2022-06-26

大家好,我叫噬魂

源码传送门

TextInputLayout是在Material Design中的,如果我们要使用的话,必须在gradle文件中配置

在 TextInputLayout官方文档API 中描述了它是一种新的继承自LinearLayout的布局,让我们使用时里面只能包含一个EditText或者其子类的控件,该布局可以通过设置 hint 和 Error 显示浮动标签.接下来我们看看布局文件

使用 TextInputLayout 其实很简单,只需要我们使用 TextInputLayout 容器并且在其中加入一个 EditText ,需要我们特别注意的是: 一个TextInputLayout有且只有一个EditText ,
如果我们想要浮动标签的效果只需要在 TextInputLayout 或者在 EditText 中设置 hint ,但是不能在两者中同时设置 hint 属性,假如我们在 TextInputLayout 跟 EditText 都设置了 hint 属性时,当 EditText 没有获取到焦点时,这时 hint 会显示(但是要注意,这时是两个hint重叠显示)
如果我们想要关闭浮动标签(默认是开启的),可以加入下面一句话

浮动标签显示与隐藏之间有一个过渡动画(默认是开启的),可以通过以下方法设置

如果我们想要在账号那栏后面加个字数统计,例如当我们的账号是固定位数时(例如手机号码,),我们可以让用户看到自己当前输入的长度,我们只需要在 TextInputLayout 加入

默认是关闭的,我们也能设置一个输入的最大长度

这个设置不是说用户输入了11位账号之后就不能输入了,而是会用一种颜色提示用户你的输入长度超过了设置长度.
TextInputLayout 也很友好,为我们提供了设置错误提醒的功能(又为我们争取了一点品咖啡的时间),

当我们调用了这个方法之后提示是会一直在的,所以我们要当用户输入正确之后我们手动调用 textInputEditText,setErro(null) 去取消错误提示.我们可以通过addTextChangedListener监听,在合适的时候调用 textInputEditText,setErro(null)

我们可能看到过其他的app在密码那栏的最右边有个👁的图标, TextInputLayout 也为我们提供了这个功能

我们可能用我们自己设计的图标

passwordToggleTint 给图标加颜色

passwordToggleTintMode 设置模式

到此,你花了多少时间,是不是很简单.

在 TextInputLayout 中加入

在 TextInputLayout 中加入

有时候我们在用虚拟键盘的时候,在输入账号之后,我们点击 下一项 ,焦点会跑到输入密码这一栏,当我们密码输入完成之后,点击 确定 按钮就能登录了,这个怎么实现的呢.
账号EditText中加入

密码EditText中加入

对于账号 EditText 的优化我们可能通过 AutoCompleteTextView 实现自动提示功能.

相似回答
大家正在搜