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>
  • 相关阅读:
    MVC模式在Java Web应用程序中的实例分析
    设计模式
    实现xxxxxxx系统六大质量属性战术
    阅读了《大型网站技术架构:核心原理与案例分析》,分析XX系统如何增加相应的功能,提高系统的可用性和易用性
    淘宝系统质量属性分析
    《架构漫谈》读后感
    软件架构师架构设计过程是什么?
    《架构之美》阅读笔记06
    《架构之美》阅读笔记05
    《架构之美》阅读笔记04
  • 原文地址:https://www.cnblogs.com/shiwei-bai/p/5138645.html
Copyright © 2011-2022 走看看