У меня есть набор AlertDialog, который я могу делать взад и вперед. Диалог A, Диалог B (имеет содержимое HTML) и Dialog C. В диалоговом окне BI добавлен веб-просмотр, чтобы показать некоторый HTML-контент, я хочу отключить клавиатуру от всплытия в этом первичном диалоговом окне B. В HTML-содержимом нет текста редактирования текста , Я использовал «getWindow(). SetSoftInputMode (WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN)» , который выполняет задание при первом открытии диалога. Когда я впервые перехожу из диалога A в диалог B, диалоговое окно B не открывает клавиатуру. Когда я вернусь в диалог B от A или C, клавиатура начнет появляться, когда я прокручиваю содержимое HTML.остановить андроид на экранной клавиатуре всплывающее окно на веб-сайте
HTML-контент - это контент на основе касания.
Я предполагаю, что код для скрытия клавиатуры не выполняется при каждом открытии диалога.
Я пробовал «SOFT_INPUT_STATE_ALWAYS_HIDDEN» и «SOFT_INPUT_STATE_HIDDEN».
EDIT: Если я открыл Google на веб-странице, у которого есть текстовое поле для поиска. клавиатура не появляется, когда я касаюсь текста редактирования, который хорош, даже если я перемещаюсь. Но когда я пытаюсь прокручивать вверх и вниз по странице, клавиатура появляется и исчезает (происходит со второго посещения диалогового окна).
Не могли бы вы поделиться своими мыслями о том, как скрыть клавиатуру каждый раз, когда я открыть этот диалог B.
@Override
@Deprecated
protected Dialog onCreateDialog(int id) {
AlertDialog.Builder builder = new AlertDialog.Builder(this,R.style.AlertDialogCustom);
final Boolean pinVerficationDialogPopedUp = loginData.getBoolean("pinVerficationDialogPopedUp",
false);
if (pinVerficationDialogPopedUp == false) {
switch (id) {
case DIALOG_ADD_A_PERSON_BODY_MAP:
try {
LayoutInflater inflaterBodyMap = this
.getLayoutInflater();
final View inflatorBodyMap = inflaterBodyMap
.inflate(
R.layout.dialog_incident_window_body_map,
null);
bodyMapWebView = (WebView) inflatorBodyMap.findViewById(R.id.webView);
bodyMapWebView.getSettings().setJavaScriptEnabled(true);
bodyMapWebView.getSettings().setBuiltInZoomControls(true);
bodyMapWebView.getSettings().setSupportZoom(true);
/*
Trying to resolve issue where sometimes when the HTML page loads, it does
not load the whole content
*/
bodyMapWebView.post(new Runnable() {
@Override
public void run() {
bodyMapWebView.loadUrl("file:///android_asset/bodyMap.html");
}
});
bodyMapWebView.addJavascriptInterface(new WebAppInterface(this), "Android");
builder.setTitle("Injured person");
builder.setView(inflatorBodyMap);
builder.setPositiveButton("Next",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
//next dialog
}
});
builder.setNegativeButton("Back",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
//previous dialog
}
});
alertBodyMap = builder.create();
alertBodyMap.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
alertBodyMap.show();
return dialog;
} catch (Exception e) {
e.printStackTrace();
}
}
}
return dialog
}
Ваша помощь очень ценится. Спасибо
http://stackoverflow.com/a/1662088/527759 – httpdispatch
Привет, user527759 У меня нет текстов редактирования в диалоговом окне, у меня есть только веб-представление в линейном макете. Я пробовал ссылку с focusable true для линейного макета, но это не решает. – BRDroid