Design-TextInputLayout的使用

高级炫酷带有提示的输入框,相当于输入框中的战斗框


Paste_Image.png

使用

依赖design类库

compile 'com.android.support:design:23.0.0+'

布局
包裹一个TextInputEditText,并且一个TextInputLayout只能包裹一个

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ll"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="25dp">

    <android.support.design.widget.TextInputLayout
        android:id="@+id/tv_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <android.support.design.widget.TextInputEditText
            android:id="@+id/tv_input"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="请输入用户名"
            android:textColor="@color/colorAccent"
            android:textColorHint="@color/colorAccent" />
    </android.support.design.widget.TextInputLayout>

    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <android.support.design.widget.TextInputEditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="请输入密码"
            android:textColor="@color/colorAccent"
            android:textColorHint="@color/colorAccent" />
    </android.support.design.widget.TextInputLayout>

    <android.support.design.widget.FloatingActionButton xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/fzb"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:clickable="true"
        android:src="@drawable/ic_search"
        app:elevation="15dp"
        app:fabSize="normal"
        app:rippleColor="@color/colorPrimary" />

</LinearLayout>

监听输入框—设置错误提示信息

//监视输入框的输入
tvInput.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) {

    }

    //输入框个改变后
    @Override
    public void afterTextChanged(Editable s) {
        if (s.length() > 5) {
            tvInput.setError("错误不能超过5位");
        }
    }
});

先在TextInputLayout中包裹一个EditText,如:

//获取EditText
EditText editText = inputLayout.getEditText();
//设置错误提示信息
inputLayout.setError("不能超过5个");
//启用错误提示
inputLayout.setErrorEnabled(true);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 最近在项目中尝试使用了官方的MD里面控制,感觉效果不错,很是好用,下面记载下TextInputLayout的使用。...
    忘尘And阅读 456评论 0 0
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,521评论 25 708
  • 内容抽屉菜单ListViewWebViewSwitchButton按钮点赞按钮进度条TabLayout图标下拉刷新...
    皇小弟阅读 46,903评论 22 665
  • 项目中,无论客户端还是服务端,日志都是必不可少的,一般的日志格式具备下面几个要素: 时间,日志等级,源码文件,源码...
    wenfh2020阅读 1,327评论 0 0
  • 世界用来去来交融命运 是你曾经太过远离 以至于心却流浪 难以定居 而我不再用悲喜来讨好命运 是如今过于明晰 让我恐...
    应十四寒阅读 421评论 17 38