FloatingActionButton
1. 使用FloatingActionButton的情形
FAB代表一個App或一個頁面中最主要的操作,如果一個App的每個頁面都有FAB,則通常表示該App最主要的功能是通過該FAB操作的。
為了突出FAB的重要性,一個頁面最好只有一個FAB
使用的時候需要導入desgin包,Android Studio 新版本都已經自動導入了,這里就不多說
compile 'com.android.support:design:25.1.0'
2. FloatingActionButton的大小一般有兩種大小(官方)
- 56 * 56dp :默認的大小,最常用的尺寸。
- 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
介紹
TextInputEditText
是EditText
的子類,相當於完善了有些EditText
的缺點
當我們的界面處於全屏時,點擊一個
EditText
,默認情況下不是在它下面彈出鍵盤,而是進入到輸入法的一個全屏的輸入界面(通過配置android:imeOptions=”flagNoExtractUi”可以設為直接在當前界面顯示)
如果我們給
EditText
套上了一個TextInputLayout
時,TextInputLayout
會拿到EditText
的hint
顯示出來並把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同時使用 |