Я делаю собственный диалоговый плагин для PhoneGap в Android.Плагин уведомлений для PhoneGap не может устанавливать текст в формате HTML в диалоговых окнах.Поэтому я решил сделать свой собственный с помощью WebView.Но я заметил, что при появлении Alert.Dialog WebView изначально пуст, а затем содержимое загружается через доли секунды, что приводит к «скачку» высоты диалога.Даже когда я жестко кодирую содержимое, переданное в loadData, загрузка содержимого все еще идет медленно.
Что-то пропущено?
@Override
public PluginResult execute(String action, JSONArray args, String callbackId) {
try {
JSONObject jo = args.getJSONObject(0);
showCustomDialog(jo.getString("title"), jo.getString("message"), jo.getString("buttonLabel"));
return new PluginResult(PluginResult.Status.OK);
} catch (JSONException e) {
return new PluginResult(PluginResult.Status.JSON_EXCEPTION);
}
}
private void showCustomDialog(final String dialogTitle, final String dialogMessage, final String dialogButtonLabel) {
Runnable runnable = new Runnable() {
public void run() {
WebView webView = new WebView(ctx);
webView.loadData(dialogMessage, "text/html", "UTF-8");
webView.setBackgroundColor(Color.TRANSPARENT);
AlertDialog.Builder alert = new AlertDialog.Builder(ctx);
alert.setView(view)
.setCancelable(false)
.setIcon(R.drawable.icon)
.setTitle(dialogTitle)
.setPositiveButton(dialogButtonLabel,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
}
)
.show();
}
};
this.ctx.runOnUiThread(runnable);
}