zoukankan      html  css  js  c++  java
  • Android Design Support Library——TextInputLayout

    前沿

      上一篇介绍了NavigationView的主要使用方式,本章主要介绍TextInputLayout的使用方式。

      TextInputLayout——EditText悬浮标签

      TextInputLayout主要作为EditText的父容器来使用,不能单独使用。TextInputLayout解决了EditText输入后hint文字消失的情况,当用户在EditText开始输入后,hint部分的文字会浮动到EditText的上方,而且还可以添加输入错误时的提示信息,显示在editText的下方,效果如下:

      

      使用步骤:

      (1)xml布局

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
    
        <android.support.design.widget.TextInputLayout
            android:id="@+id/usernameWrapper"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
    
            <EditText
                android:id="@+id/username"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="Username"
                android:inputType="textEmailAddress" />
        </android.support.design.widget.TextInputLayout>
    </RelativeLayout>

      (2)Java代码调用

    final TextInputLayout textInputLayout = (TextInputLayout) findViewById(R.id.usernameWrapper);
            textInputLayout.setHint("Username");
            EditText editText = textInputLayout.getEditText();//直接通过getEditText()获得EditText控件即可
    
            editText.addTextChangedListener(new TextWatcher() {
                @Override
                public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                    if (s.length() > 3) {//这里可以加入正则判断
                        textInputLayout.setError("Password error");
                        textInputLayout.setErrorEnabled(true); //一定要在setError方法之后执行才可
                    } else {
                        textInputLayout.setErrorEnabled(false);//不满足条件需要设置为false
                    }
                }
    
                @Override
                public void onTextChanged(CharSequence s, int start, int before, int count) {
                }
                @Override
                public void afterTextChanged(Editable s) {
                }
            });
        }

      此外可以通过TextInputLayout如下两个属性来设置hint和error的字体

    app:errorTextAppearance="@style/FloatingStyle"
    app:hintTextAppearance="@style/FloatingStyle"

      /style/FloatingStyle

     <style name="FloatingStyle" parent="@android:style/TextAppearance">
            <item name="android:textColor">@color/colorPrimaryDark</item>
            <item name="android:textSize">12sp</item>
     </style>
  • 相关阅读:
    eclipse恢复界面默认设置
    文件夹的拷贝
    文件的输入输出
    十进制转二进制,八进制,十六进制(查表法)
    数组元素的查找(折半查找)
    C++几个小函数
    C++ 内部排序(一)
    C++实现链表
    C++输出IP地址段内的合法地址
    我看软件工程师的职业规划
  • 原文地址:https://www.cnblogs.com/shiwei-bai/p/5138645.html
Copyright © 2011-2022 走看看