一:在某一個activity中點擊任意位置均可以隱藏鍵盤
val keyboard =getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
//this.currentFocus?.windowToken 是獲取當前activity的windowToken
keyboard.hideSoftInputFromWindow(this.currentFocus?.windowToken,0)
二:若輸入法已經打開則隱藏,反之則顯示
val keyboard = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
keyboard.toggleSoftInput(0,InputMethodManager.HIDE_NOT_ALWAYS)
三:需要接收輸入的視圖對鍵盤進行強制打開或隱
val keyboard = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
//keyboard.isActive是鍵盤的狀態,若是打開的則回傳true否則回傳false
if (keyboard.isActive){
//強制關閉
keyboard.hideSoftInputFromWindow(v.windowToken,0)
}else{
//打開
keyboard.showSoftInput(v,InputMethodManager.SHOW_FORCED)
}
遇到的問題:keyboard.isActive一直回傳的都是True,一直沒找出是什么原因,本人的解決方法自己定義一個狀態值記錄
鍵盤的狀態
private var isopen = false
val keyboard = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
//keyboard.isActive是鍵盤的狀態,若是打開的則回傳true否則回傳false
//
if (isopen){
Log.v("lfl","關閉鍵盤")
//強制關閉
keyboard.hideSoftInputFromWindow(v.windowToken,0)
isopen = !isopen
}else{
Log.v("lfl","打開鍵盤")
//打開
keyboard.showSoftInput(v,InputMethodManager.SHOW_FORCED)
isopen = !isopen
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/286120.html
標籤:Android
上一篇:selector的用法
下一篇:自定義繪制View常用方法
