Я пытаюсь предотвратить появление клавиатуры после вызова requestFocus () в SearchView, но не существует решения, чтобы это исправить на Android 8.
Я пытался:
/* 1 /
android:windowSoftInputMode="stateAlwaysHidden"
/ * 2 /
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
/ * 3 /
InputMethodManager inputMethodManager = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
if (activity.getCurrentFocus() != null && activity.getCurrentFocus().getWindowToken() != null)
inputMethodManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0);
/ * 4 /
final View activityRootView = findViewById(R.id.rootLayout);
activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int heightDiff = activityRootView.getRootView().getHeight() - activityRootView.getHeight();
if (heightDiff > dpToPx(Act_StoreOrder.this, 200)) { // if more than 200 dp, it's probably a keyboard...
Log.i("<<<Clavier","Clavier Showed Up");
//hide here
}
}
});
onGlobalLayout () работал, но программная клавиша показывается в течение почти 0,5 с и исчезает.
Любая помощь, чтобы скрыть эту программную клавиатуру даже после вызова метода requestFocus () ??