Ответ 1
Попробуйте это в третьей строке вашего кода:
imm.hideSoftInputFromWindow(view.getApplicationWindowToken(), 0);
У меня есть вкладка с одним активным за вкладку, и когда я переключаюсь с первой вкладки, которая имеет TextView, на вторую вкладку, которая отображает только доступный список, мягкая клавиатура все еще там. Я хочу, чтобы он ушел, поэтому я попробовал это:
public static void hideSoftKeyboard (Activity activity, View view) {
InputMethodManager imm = (InputMethodManager)activity.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
но это не работает, потому что нет соответствующего представления для представления, так как на экране не отображается вид, который принимает ввод с клавиатуры. Любые предложения о том, как это решить?
Попробуйте это в третьей строке вашего кода:
imm.hideSoftInputFromWindow(view.getApplicationWindowToken(), 0);
Попробуйте ответить Джо: Остановить EditText, чтобы получить фокус при запуске Activity
Поместите это в манифест для своей деятельности:
android:windowSoftInputMode="stateHidden"
Это общий вопрос, и здорово знать, что структура действительно справляется с этим очень хорошо.
Вы также можете попробовать
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0 );
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
Этот метод может помочь вам скрыть клавиатуру любым способом. Это отлично работает для меня
public void hideKeyboard(Activity activity, View view) {
if (activity != null ) {
if(view != null)
{
try {
InputMethodManager imm = (InputMethodManager)this.getSystemService(Service.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
} catch (Exception e) {
e.printStackTrace();
}
}else
{
activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
}
}
}