TextInputLayoutandroid
TextInputLayout 是一個佈局,僅能夠添加一個子View且必須爲ExitText。ide
TextInputLayout 爲用戶提供了兩個比較有意思的方法佈局
1.hint是EditText的一個很好的屬性,當用戶輸入數據後,hint內容將自動消失。使用TextInputLayout用戶輸入數據後內容將不會直接隱藏,而是上浮繼續顯示;spa
2.用戶輸入信息錯誤,錯誤提示將直接顯示在輸入EditText下發。xml
示例代碼:get
佈局代碼:input
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"it
android:layout_width="match_parent"io
android:layout_height="match_parent">List
<EditText
android:id="@+id/original_edittext"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/section_label"
android:hint="請輸入密碼"
/>
<android.support.design.widget.TextInputLayout
android:id="@+id/text_input_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/original_edittext"
>
<EditText
android:id="@+id/Test_edittext"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</android.support.design.widget.TextInputLayout>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/text_input_layout"
android:hint="請輸入密碼"
/>
</RelativeLayout>
Java代碼:
final TextInputLayout textInputLayout = (TextInputLayout) rootView.findViewById(R.id.text_input_layout);
textInputLayout.setHint("請輸入賬號"); //動態設置hint信息,嘗試在佈局中進行設置爲成功
textInputLayout.getEditText().setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
textInputLayout.setError("格式有誤"); //自動設置setErrorEnabled爲true
} else {
textInputLayout.setErrorEnabled(false); //設置錯誤信息提示。因爲提示信息是須要佔據必定位置,所以這裏設置錯誤提示不可用
textInputLayout.setError(null); //設置錯誤提示信息爲空
}
}
});