2014-10-01 72 views
1

我有一个自定义对话框,其中包含一个EditText。现在,无论何时使用Dialog.show();显示对话框,EditText立即抓取焦点并显示软键盘。我试图把它添加到清单:Android隐藏软键盘与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

我制作了一个视图,并将它的可见性设置为“无效”。然后将焦点设置到它。但是,每次打开对话框时,键盘仍会显示。 – TastyLemons 2014-10-01 02:35:40

+0

我猜不是设置可见性消失了,您可以将宽度和高度设置为0dp或1dp,然后将可见性设置为不可见,因为如果将其设置为“无效”,它将真正从布局中消失,因此无法捕捉焦点 – 2014-10-01 02:40:30

+0

什么类型是隐形视图?因为如果它是EditText,它仍然会显示键盘。 – TastyLemons 2014-10-01 02:45:07