问题
Can we hide android system keyboard when user focuses or clicks on html input elements inside the webview.
I have tried hiding keyboard on user touches webview:
webView.setOnTouchListener(new View.OnTouchListener()
{
@Override
public boolean onTouch (View v, MotionEvent event){
Toast.makeText(cx,"Web View Touch",Toast.LENGTH_LONG).show();
v.onTouchEvent(event);
InputMethodManager imm = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null) {
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
return true;
}
})
But that doesn't work.
Is there option to hide keyboard entirely for a app?
回答1:
You can control the softkeyboard - Handling Input Method Visibility for each activity with the manifest like so:
<activity
android:name=".Main"
android:windowSoftInputMode="stateAlwaysHidden" >
<activity
android:name=".Main"
android:windowSoftInputMode="stateHidden" >
You can also control it so it flows using 'next' from one edittext to the next and then hides again with 'done' using IME options.
android:imeOptions="actionNext"
android:imeOptions="actionDone"
I also realise the problem would be with using a webview and needing to also disable any keyboard from parent layouts,as the webview is separate from the activities in the manifest, so add this to any parent layout:
android:descendantFocusability="blocksDescendants"
and in the webview:
android:focusable="false"
android:focusableInTouchMode="false"
回答2:
try this in the activity in manifest.xml..
android:windowSoftInputMode="stateHidden"
it may help.
来源:https://stackoverflow.com/questions/34548226/how-to-hide-keyboard-when-user-clicks-on-textbox-in-webview-android