Может ли кто-нибудь объяснить, почему появляется мягкая клавиатура и исчезает, когда это происходит?Почему появляется программная клавиатура Android, когда она появляется?
У меня есть макет с кучей различных элементов управления, в основном EditTexts и Buttons. Когда я впервые показываю эту страницу, EditText в верхней части макета имеет фокус, а мягкая клавиатура закрывает нижние 45% экрана.
Я предположил, что клавиатура была там, потому что EditText имел фокус, поэтому я решил дать кнопке внизу моей страницы фокус, а не через. , ,
butDone.setFocusableInTouchMode(true);
bResult = butDone.requestFocus();
... сразу после setContentView(). Это работало так же, как при нажатии кнопки. Бобтон получил фокус, а EditText больше не фокусировался, но клавиатура все еще была там. В конце концов я избавился от клавиатуры через
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
, но ясно, что моя теория о том, что EditText имеет фокус, была неправильной. Так может кто-нибудь объяснить «правила» о том, что делает клавиатуру появляться, когда она делает, или ссылку на эти правила? Заранее спасибо!
Итак, вы говорите, что, хотя я даю фокус кнопке в коде, он игнорирует это, потому что фокус не указан в XML? – user316117
Нет, я просто говорю, что это лучшее решение, чтобы указать, что на XML, а не позволять Android сосредоточиться на первом EditText по умолчанию, а затем программно изменить его. – Edgar