TextInputLayout 详解

1,499 阅读1分钟

介绍

  • 更加强大的EditText

效果

preview


preview

依赖

dependencies {
    compile 'com.android.support:design:25.0.0' //最新
}

xml属性

  • android:hint - 设置提示文本,会与EditText的hint重复

  • app:counterEnabled - 是否显示输入内容的长度(右下角、一个汉字记为一个1个长度)

  • app:counterMaxLength - 设置输入的最大长度,如果超出,会变色提醒

  • app:errorEnabled - 是否显示错误信息

  • app:passwordToggleEnabled - 是否使用显示/隐藏密码按钮。

动态显示错误信息

private TextInputLayout mTilUsername;
...

mTilUsername = (TextInputLayout) findViewById(R.id.til_username);
mTilUsername.getEditText().addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                if (s.length() > 6) {
                    mTilUsername.setError(getString(R.string.username_error_info));     //如果直接输入中文,会出现乱码
                    mTilUsername.setErrorEnabled(true);
                } else {
                    mTilUsername.setErrorEnabled(false);
                }
            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });

注意事项

  • TextInputLayout中必须包含一个(只能是一个)EditText才能正常运行。

  • TextInputLayout的hint会与其子控件EditText的hint重复。

  • 如果TextInputLayout包含的EditText的inputType是password类型的话,会自动添加显示/隐藏按钮。

    pic

注意:本文所使用的图片部分来自互联网,如有侵权立即删除。