WebView медленно загружает контент - PullRequest
1 голос
/ 06 марта 2012

Я делаю собственный диалоговый плагин для 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);
}
...