日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android 键盘 自动消失,Android 系统键盘怎么也不消失

發布時間:2023/12/14 Android 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 键盘 自动消失,Android 系统键盘怎么也不消失 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

版權聲明:本文為博主原創文章,未經博主允許不得轉載。

在我們開發EditText的時候,會經常和系統輸入框打交道,各種系統輸入框的顯示和隱藏的控制。常常也碰到各種顯示不了,隱藏不了的問題。最近碰到一個系統輸入框一直顯示不了的問題。

問題:自定義密碼輸入框顯示后,系統輸入框需要顯示,密碼輸入完畢后系統輸入框需要消失,這個時候,不管怎么樣都消失不了。

上網找了很多解決方案,對于我這個情況都沒有效果。稍微總結下:

1

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);

imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);

2

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);

imm.showSoftInput(view,InputMethodManager.SHOW_FORCED);

imm.hideSoftInputFromWindow(view.getWindowToken(), 0); //強制隱藏鍵盤

3

將EditText的父級控設置成:

Android:focusable=”true”

android:focusableInTouchMode=”true”

4

在AndroidManifest.xml中的application中添加如下第一行代碼

android:windowSoftInputMode=”adjustPan|stateHidden”

5

if (getWindow().getAttributes().softInputMode != WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN) {

if (getCurrentFocus() != null)

inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(),

InputMethodManager.HIDE_NOT_ALWAYS);

}

.......等等諸如此類的方法對于一般的情況是有效果的。但是對于我的這個情況,不管是在onDestroy()方法里還是在輸入框需要消失的時候去調這些方法都是沒有用。后來我想到了會不會是焦點的問題,輸入框不消失肯定是有某個控件或者view獲得了焦點,于是,想到了如下的解決方案。

v.requestFocus();

if (v != null) {

IBinder token = v.getWindowToken();

if (token != null) {

InputMethodManager im = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);

im.hideSoftInputFromWindow(token, 0);

}

}

其中的v可以是任意需要獲取焦點的view。經測試,能解決很多系統輸入框不能消失的問題。

總結

以上是生活随笔為你收集整理的android 键盘 自动消失,Android 系统键盘怎么也不消失的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。