我正在为Android中的PhoneGap做一个自定义对话框插件。 PhoneGap的Notification插件无法在对话框中以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);
}