iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 30
0
Mobile Development

Android Kotlin開發 -小嫩雞的30篇精選筆記系列 第 30

Android x Kotlin : EditText與軟鍵盤常見設定

簡介

editText有些常用設定,有時候會不小心忽略掉。雖然有些不是必備,但使用者體驗的優化還是很重要ㄉ,繼續看下去。

圖片來源:台灣漫畫基地

<EditText
  android:id="@+id/et_phone_verify_code"
  style="@style/EditTextStyle"
  android:layout_width="match_parent"
  android:layout_height="36dp"
  android:layout_marginTop="6dp"
  android:background="@color/colorf8f8f8"
  android:focusableInTouchMode="true"
  android:hint="@string/phone_verify_code"
  android:imeOptions="actionDone"
  android:inputType="number"
  android:paddingStart="16dp"
  android:singleLine="true"/>

1. singleLine與InputType

記得設定singleLineInputType,以及設定每個editText的軟鍵盤右下角的按鍵,一般預設會顯示enter,想改的話可以利用edittext的imeOptions屬性依需求改成不同功能鍵。

  • android:imeOptions="actionSearch" 文字為搜尋
  • android:imeOptions="actionGo" 文字為開始
  • android:imeOptions="actionSend" 文字為傳送
  • android:imeOptions="actionDone" 文字為Enter鍵
  • ...................

2. focusableInTouchMode 屬性

還不太懂,可參考這篇

3. 密碼欄位的edittext:

設定密碼顯示

et.inputType = InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD

設定密碼隱藏:

et.inputType = InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_VARIATION_PASSWORD

因為上述調整完後,edittext的游標會回到最前面,所以要同時設定這一行,把游標保持在最末端

et.setSelection(et.text.length)

4. 收起軟鍵盤

fun hideKeyboard(view: View, nextFoocusView: View = view.rootView) {
    val imm = view.context?.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
    imm.hideSoftInputFromWindow(view.windowToken, 0)
    view.clearFocus()
    nextFoocusView.requestFocus()
}

5.軟鍵盤右下角的完成鈕

我們要監聽使用者按下軟鍵盤的控制鍵,譬如軟鍵盤右下角的完成鈕

et.setOnEditorActionListener { v, actionId, event ->
    if(actionId == EditorInfo.IME_ACTION_DONE){
            ....
    }
    false
}

可以與imeOption屬性做搭配!!!!
imeOptions=”actionUnspecified” –> EditorInfo.IME_ACTION_UNSPECIFIED
imeOptions=”actionNone” –> EditorInfo.IME_ACTION_NONE
imeOptions=”actionGo” –> EditorInfo.IME_ACTION_GO
imeOptions=”actionSearch” –> EditorInfo.IME_ACTION_SEARCH
imeOptions=”actionSend” –> EditorInfo.IME_ACTION_SEND
imeOptions=”actionNext” –> EditorInfo.IME_ACTION_NEXT
imeOptions=”actionDone” –> EditorInfo.IME_ACTION_DONE

30天過去,鐵人賽與案子的壓力算是幫我分擔了很多容易胡思亂想的時間,但即使一個月過去,思考中斷的間隙總還是會被那些思緒趁虛而入。
曾大言不慚我們不會被時間沖淡,現在卻只希望它沖淡一切。

事情發生後連帶產生的自我懷疑也成為新的負擔,工作上一有不順就常常質疑自己,覺得是不是不夠努力,不夠聰明,是不是什麼都做不好。
這一個月相當難熬,但還是過來了,謝謝自己,也謝謝身邊那些帶來溫暖的人。2020鐵人賽完賽,該吃海港城了八!!


上一篇
Android x Kotlin : 簡易實作第一堂-自定義customView與在xml中設定屬性預設值
系列文
Android Kotlin開發 -小嫩雞的30篇精選筆記30

尚未有邦友留言

立即登入留言