Android 中 TextinputLayout 的用法

Android 中 TextinputLayout 的用法_第1张图片
textinputlayout_pic.png

Layout which wraps an EditText (or descendant) to show a floating label when the hint is hidden due to the user inputting text.

TextinputLayout 在内部嵌套一个 EditText ,并展示一个浮动的标签,标签会在用户输入的时候移动到 EditText 上方。

我在这里简单的记录一下 TextInputLayout 的用法


添加依赖

dependencies{
    compile ‘com.android.support:appcompat-v7:25.0.1’
    compile ‘com.android.support:design:25.0.1'
}

设置相关属性

  • 开启浮动标签
    在 TextinputLayout 中加入 hint 属性
  • 关闭浮动标签
    app:hintEnable=“true | false”
  • 浮动标签动画
    app:hintAnimationEnable=“true | false”
  • 自定义浮动标签
 
在 TextinputLayout 中加入 app:hintAppearance=“@style/hintAppearence"
  • 在 EditText 下显示字数统计
    app:counterEnable=“true”
    app:counterMaxLength=“11”. //超过 11 位后换颜色
  • 显示密码:
    app:passwordToggleEnable=“true”
    换图标:app:passwordToggleDrawable=“@mipmap/ic_launcher”
    加颜色:app:passwordToggleTint=“@color/colorBlue”
    设置模式:app:passwordToggleMode=“screen | src_in | src_atop | src_over | multiply”

设置错误提示

setError: 设置错误提示信息
setErrorEnable: 开启错误提示功能
直接调用 setError,会自动调用 setErrorEnable
自定义错误提示样式


在 TextinputLayout 中加入自定义的错误提示样式

app:errorTextAppearance=“@style/errorAppearance"

Java 代码实现:

public void onClick(View v){
    String username = usernameTextinputlayout.getEditText().getText().toString();
    String password = passwordTextinputLayout.getEditText().getText().toString();
    If(username == “”){
        usernameTextinputLayout.setError(“用户名不能为空”);
    }else if(password == “”){
        passwordTextinputLayout.setError(“密码不能为空”);
    }else{
        usernameTextinputLayout.setErrorEnable(false);
        passwordTextinputLayout.setErrorEnable(false);
    }
}

修改样式

  • 默认情况下 TextinputLaylout 控件的颜色是 当前 Style 下 colorAccent 设置的,所以修改 style 下 colorAccent 的值即可.
  • 修改光标样式 :
    隐藏光标 : android:cursorVisible.
    光标样式 : android:textCursorDrawable. 为空时,光标颜色和文字颜色一致
    在 drawable 下创建 cursor_color.xml

    
    

隐藏下划线 : android:background=“@null"

参考:
https://segmentfault.com/a/1190000009507919r

欢迎关注我的博客、、CSDN、GitHub

你可能感兴趣的:(Android 中 TextinputLayout 的用法)