2014-10-01 3 views
1

У меня есть пользовательское диалоговое окно, содержащее EditText. Теперь, когда я показываю диалог с помощью Dialog.show();, EditText сразу же захватывает фокус и отображает Soft-Keyboard. Я попытался добавить это к манифесту:Android Hide Soft-Keyboard on Dialog с EditText

android:windowSoftInputMode="stateHidden" 

На основании этого ответа: https://stackoverflow.com/a/2611031/3011902

Я также попытался следующие на EditText:

EditText.setSelected(false); 

И:

LinearLayout hidden = (LinearLayout) loginDialog.findViewById(R.id.hidden); 
hidden.setVisibility(View.INVISIBLE); 
hidden.setFocusable(true); 
hidden.requestFocus(); 
loginDialog.show(); 

Я также попытался вручную скрыть клавиатуру сразу после отображения диалогового окна, но это бит незаконным. Есть ли простой способ отображать только клавиатуру, когда выбран EditText диалогового окна.

ответ

2

Вы можете попробовать перенаправлять фокус на другой точке зрения или просто невидимый вид внутри вашего диалогового окна на заказ с добавлением
android:focusable="true" и android:focusableInTouchMode="true" или
setFocusable(true) и setFocusableInTouchMode(true)

Если у Вас возникли вопросы относительно моего ответа, не стесняйтесь спросить в комментарии!

+0

Я сделал вид и установил его видимость, чтобы уйти. А затем установите для него Focus. Тем не менее, клавиатура по-прежнему отображается при каждом открытии диалога. – TastyLemons

+0

Я предполагаю, что вместо того, чтобы убирать видимость, вы можете установить ширину и высоту в 0dp или 1dp, а затем установить видимость на невидимую, потому что если вы установите ее на Gone, она действительно исчезнет из макета, поэтому она не поймает фокус –

+0

Какой тип является невидимым? Потому что, если это EditText, он все равно будет показывать Клавиатуру. – TastyLemons