Android TextInputLayout 使用及其属性
16lz
2021-01-23
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); } } }); }}
更多相关文章
- Android控件Editext、TextView属性详解
- android ListView几个比较特别的属性
- EditText属性描述
- Android 下拉加载更多 上拉刷新 框架 (太极 八卦样式刷新,支持自定
- Android Visibility属性详解
- Android布局文件属性
- android:clipChildren属性