8

我有一个DialogFragment用作弹出窗口。这里面DialogFragment有一个ListView,并且使用了一个BaseAdapter有自定义的TableRow。我的问题是,完全显示弹出窗口大约需要 2 秒。是否有任何解决方案或建议可以让我更快地显示此弹出窗口。

更多细节:TableRow有 2 个ImageView和 3 个 custom TextViewBaseAdapter处理是View因为它必须做一些事情,比如隐藏 other 、View设置文本等。

任何帮助将不胜感激。谢谢!:D

4

1 回答 1

5

我对 DialogFragment 也有很多问题,在我们公司,我们决定放弃它。主要问题是它需要一些时间来渗透和做碎片的东西。但在它出现之前,用户可以与屏幕交互。例如,在弹出窗口出现之前多次按下按钮并可能导致意外行为,您必须在代码中考虑。

而是使用普通对话框并设置内容视图 - 自定义布局和其他参数

    Dialog dialog = new Dialog(context);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialog.setContentView(R.layout.progress_dialog);
    dialog.setCancelable(false);

    Window window = dialog.getWindow();
    if (window != null) {
        window.setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
    }

    dialog.show();

它有助于避免与 Fragments、Fragment Transactions、State 和许多其他相关的问题。

于 2017-12-04T11:32:13.223 回答