Android Material Design控件使用(2)——FloatButton TextInputEditText TextInputLayout 按鈕和輸入框


FloatingActionButton

1. 使用FloatingActionButton的情形

FAB代表一個App或一個頁面中最主要的操作,如果一個App的每個頁面都有FAB,則通常表示該App最主要的功能是通過該FAB操作的。

為了突出FAB的重要性,一個頁面最好只有一個FAB
使用的時候需要導入desgin包,Android Studio 新版本都已經自動導入了,這里就不多說

 compile 'com.android.support:design:25.1.0'

2. FloatingActionButton的大小一般有兩種大小(官方)

  1. 56 * 56dp :默認的大小,最常用的尺寸。
  2. 40 * 40 dp :Mini版。
    當然也是可以改變大小,不過一般使用

按鈕中間圖標大小官方推薦為 24*24dp

3.FloatingActionButton的屬性

FloatingActionButton是繼承ImageView,包含了ImageView的所有屬性,除此之外,還有幾個新增加的特殊屬性,需要使用命名空間來使用。

引入命名空間:xmlns:app="http://schemas.android.com/apk/res-auto"

屬性名 說明
elevation 陰影的高度
fabSize FAB的大小,為normal時,大小為:56 * 56dp ,為mini時,大小為: 40 * 40 dp
backgroundTint FAB的背景顏色
rippleColor 點擊FAB時,形成的波紋顏色

TextInputEditText

介紹

TextInputEditTextEditText的子類,相當於完善了有些EditText的缺點

當我們的界面處於全屏時,點擊一個EditText,默認情況下不是在它下面彈出鍵盤,而是進入到輸入法的一個全屏的輸入界面(通過配置android:imeOptions=”flagNoExtractUi”可以設為直接在當前界面顯示)

如果我們給EditText 套上了一個TextInputLayout時,TextInputLayout會拿到EditTexthint顯示出來並把EditText本身的hint設為空.這樣我們在全屏的輸入界面上,就顯示不出來我們設置hint,因此TextInputEditText重寫了EditText

TextInputLayout

介紹

這個布局其實是與EditText連用,可以實現密碼框的顯示與隱藏,和點擊輸入的時候,會將提示文字浮現在上方

浮現文字

代碼如下:

<?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:orientation="vertical"
    android:layout_height="match_parent"
    tools:context="com.wan.homework.activity.Homework1Activity">
    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
            <android.support.design.widget.TextInputEditText
                android:id="@+id/username"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="用戶名"/>
    </android.support.design.widget.TextInputLayout>

    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <EditText
            android:inputType="textPassword"
            android:id="@+id/password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="密碼"/>
    </android.support.design.widget.TextInputLayout>


</LinearLayout>

錯誤提示

TextInputLayout其實內置了一個用來顯示錯誤提示的方法,方法名為setError,效果如下

我們可以按鈕的點擊事件中,對用戶的輸入進行判斷,從而顯示錯誤信息

val userName = input_login_name.editText?.text.toString()

//驗證用戶輸入
if (userName.isBlank()) {
	input_login_name.error = "用戶名還未輸入哦!"
}

PS:如果想要清空錯誤信息,將錯誤信息設置為""即可

input_login_name.error = ""

密碼的顯示與隱藏

如果想要實現此效果,只需要在將TextInputLayout的EditText的inputType屬性設置為textpassword,將TextInputLayout的自定義屬性passwordToggleEnabled設置為true即可

<android.support.design.widget.TextInputLayout
	android:id="@+id/input_password"
	android:layout_width="match_parent"
	android:layout_height="wrap_content"
	app:passwordToggleEnabled="true">

	<android.support.design.widget.TextInputEditText
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:hint="密碼"
		android:inputType="textPassword"/>
</android.support.design.widget.TextInputLayout>

屬性

屬性名 說明
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同時使用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM