Android开发之自定义输入框无法弹起键盘输入法的解决方法
生活随笔
收集整理的這篇文章主要介紹了
Android开发之自定义输入框无法弹起键盘输入法的解决方法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
通常在開發(fā)需求中,在很多場景下我們需要手動吊起輸入法功能,但是偶爾會發(fā)現(xiàn)在自定義EditText輸入框中有時候會無法彈起輸入法,舉個我遇到的場景:
第一次進入此頁面要求立馬獲取輸入框焦點并且彈起輸入法,可是我這個是自定義的輸入框調(diào)用多次最終依然無法彈起。
具體原因如下:
當進入activity或者fragment頁面的時候的onCreate和onCreateView生命周期的時候,此時輸入框還沒有倍繪制完成,因此輸入法在繪制完成之前無法獲取到要輸入的輸入框焦點因此無法彈出。
解決辦法如下:
方法一,在edittext.post中彈起鍵盤,已成功
//我是在fragment的onCreateView生命周期直接吊起鍵盤導致吊起失敗的,解決方法如下 , //通過在edittext.post中彈起鍵盤 binding.searchEditText.hint = hotWordData//首先獲取焦點binding.searchEditText.requestFocus()//再調(diào)起系統(tǒng)鍵盤binding.searchEditText.post { SoftKeyboardUtils.showKeyboard(binding.searchEditText) }方法二,請自行測試
Timer timer = new Timer(); timer.schedule(new TimerTask() {@Overridepublic void run() {InputMethodManager manager =(InputMethodManager) etSearch.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);manager.showSoftInput(etSearch, 0);} }, 500);看下吊起和隱藏輸入法法的工具類
import android.content.Context import android.view.View import android.view.inputmethod.InputMethodManager import com.xiayiye5.common.global.GlobalContext/*** 顯示和關閉系統(tǒng)鍵盤的方法* @author xiayiye5* @date 2021/9/29 10:45*/ object SoftKeyboardUtils {private val imm: InputMethodManager =GlobalContext.get().getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager/*** 關閉系統(tǒng)鍵盤的方法*/fun hideKeyboard(view: View) {imm.hideSoftInputFromWindow(view.windowToken, 0)}/*** 顯示系統(tǒng)鍵盤的方法*/fun showKeyboard(view: View) {imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT)} }看下解決后的效果圖
感謝兩位博主提供的方法:方法一博主?方法二博主
總結
以上是生活随笔為你收集整理的Android开发之自定义输入框无法弹起键盘输入法的解决方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android开发之Glide设置Vie
- 下一篇: 尸兄主角系统介绍