我希望由于我的webView中的操作而无法弹出软键盘。那是因为我有一个自定义的“键盘”,由webView下面的按钮组成。但是,我不想为我的应用程序完全禁用键盘,因为我必须在不同的上下文中使用它。当用户单击webView中的输入字段时,它不应该显示。我也不希望键盘显示并立即再次隐藏。
我目前在我的AndroidManifest.xml
:
android:windowSoftInputMode="stateAlwaysHidden"
我已经尝试禁用webView的焦点,但是我无法使用自定义“键盘”输入文本,因为webView的输入字段没有聚焦。
我也在onCreate
尝试了这个,但它没有用(键盘仍然显示):
View focusedView = this.getCurrentFocus();
if (focusedView == null)
return;
InputMethodManager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (manager == null)
return;
manager.hideSoftInputFromWindow(focusedView.getWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
答案 0 :(得分:8)
但这是解决方案:
在父布局中添加:
android:descendantFocusability="blocksDescendants"
设置WebView的这两个属性:
android:focusable="false"
android:focusableInTouchMode="true"
这对我有用:)
答案 1 :(得分:3)
在WebView
android:descendantFocusability="blocksDescendants"
android:focusable="false"
android:focusableInTouchMode="false"
试试这个
<WebView
android:id="@+id/myWebView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:descendantFocusability="blocksDescendants"
android:focusable="false"
android:focusableInTouchMode="false" />
答案 2 :(得分:0)
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
在所有事情之前调用此
答案 3 :(得分:0)
在onCreate
setContentView
方法中
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
运行此活动时键盘不会显示。