Android 从5.0版本开始,新增了Android Materia Design库,让开发者高效的实现炫酷的UI效果

属性:

app:Theme 设置下划线或其他的颜色属性
android.support.design:counterEnabled 是否显示输入长度计数器
android.support.design:counterMaxLength 设置计数器的最大值,与counterEnabled同时使用
android.support.design:counterTextAppearance 计数器的字体样式
android.support.design:counterOverflowTextAppearance 输入字符大于我们限定个数字符时的字体样式
android.support.design:errorEnabled 是否显示错误信息
android.support.design:errorTextAppearance 错误信息的字体样式
android.support.design:hintAnimationEnabled 是否显示hint的动画,默认true
android.support.design:hintEnabled 是否使用hint属性,默认true
android.support.design:hintTextAppearance 设置hint的文字样式(指运行动画效果之后的样式)
android.support.design:passwordToggleDrawable 设置密码开关Drawable图片,与passwordToggleEnabled同时使用
android.support.design:passwordToggleEnabled 是否显示密码开关图片,需要EditText设置inputType
android.support.design:passwordToggleTint 设置密码开关图片颜色
android.support.design:passwordToggleTintMode 设置密码开关图片(混合颜色模式),与passwordToggleTint同时使用

效果图:


密码框这里的眼睛是可以更改密码的,只要把TextInputLayout的属性设置app:passwordToggleEnabled="true"

一、添加库依赖

**
在build.gradle 文件中添加这样的代码

dependencies {    implementation fileTree(dir: 'libs', include: ['*.jar'])    implementation 'com.android.support:design:28.0.0'}

这里的版本号根据自己的需要来写,如果gradle版本是22,可以使用22.2.0,由于我的是28.0.0所以我的design依赖版本也选择的28.0

二、具体使用

TextinputLayout实际上可以看成对EditText加装了一层外壳。
所以我们使用的时候也可以这么使用。

XML:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context=".MainActivity">    <android.support.design.widget.TextInputLayout        android:layout_marginTop="20dp"        android:id="@+id/input_one"        android:layout_width="match_parent"        app:counterEnabled="true"        app:counterMaxLength="10"        android:hint="请输入您的账户"       app:errorEnabled="true"        android:layout_height="wrap_content">        <EditText            android:id="@+id/username"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:drawableStart="@mipmap/geren"            android:inputType="textEmailAddress" />    android.support.design.widget.TextInputLayout>    <android.support.design.widget.TextInputLayout        android:id="@+id/input_two"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:focusable="true"        android:hint="请输入密码"        android:focusableInTouchMode="true"        android:gravity="center_vertical"        app:counterEnabled="true"        app:counterMaxLength="10"        app:errorEnabled="true"        app:passwordToggleEnabled="true"        android:orientation="vertical">        <EditText            android:id="@+id/password"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:drawableStart="@mipmap/suo"            android:inputType="textPassword" />    android.support.design.widget.TextInputLayout>LinearLayout>

JAVA:

package com.example.test50;import android.support.design.widget.TextInputLayout;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.text.Editable;import android.text.TextWatcher;import android.widget.EditText;public class MainActivity extends AppCompatActivity {    //user    private TextInputLayout mtextInput1;    private EditText editText1;    //password    private TextInputLayout mtextInput2;    private EditText editText2;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mtextInput1 = findViewById(R.id.input_one);        mtextInput2 = findViewById(R.id.input_two);        editText1 = findViewById(R.id.username);        editText2 = findViewById(R.id.password);        editText1.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(mtextInput1.getCounterMaxLength()<editText1.length())                {                    mtextInput1.setError("超出字数限制!");                }                else                {                    mtextInput1.setErrorEnabled(false);                }            }        });    }}

更多相关文章

  1. 如何直接使用Android(安卓)internal and hidden APIs
  2. android超多开发资源整理
  3. android源代码编译
  4. Android上面的百度地图使用步骤
  5. android textview设置字体的行距和字间距
  6. Android(安卓)Studio中SVN安装与使用
  7. 箭头函数的基础使用
  8. NPM 和webpack 的基础使用
  9. Python list sort方法的具体使用

随机推荐

  1. android 获取应用程序(包)的信息和缓存大
  2. Unity 编辑器环境下不能正确加载Android
  3. 安卓开发学习之004 LinearLayout之分隔线
  4. android之init进程-uevent
  5. Android 笔记 android 7.0 单独编译framw
  6. android中插入一条SMS短信内容(可用于恢复
  7. Android P Launcher3中添加未读信息角标
  8. TextView自己滚动
  9. Android 组件化的应用 模块通信问题解决
  10. android sdk 更新