延迟弹出对话框片段,直到其中的 webview 完成加载

Posted

技术标签:

【中文标题】延迟弹出对话框片段,直到其中的 webview 完成加载【英文标题】:Delay popping up a dialog fragment till a webview within has completed loading 【发布时间】:2015-09-06 06:18:21 【问题描述】:

我有一个对话框片段,它基本上只包含一个 Web 视图。我希望仅在 Web 视图完成加载 URL 后弹出对话框。

这是我的DialogFragmentonCreateView

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    View view = inflater.inflate(R.layout.dialog_A, container, false);

    webView = (WebView) view.findViewById(R.id.web_view);
    webView.clearCache(true);
    webView.loadUrl(url);

我遇到的问题是只有在调用onCreateView() 方法之后才创建Web 视图对象,该方法只有在调用show() 之后才会被调用;这反过来会导致对话框弹出。

我是否可以在弹出对话框之前预加载 Web 视图?

【问题讨论】:

【参考方案1】:

由于片段的LifeCycle,我不会使用DialogFragment。您想在将WebView 显示给用户之前加载它。因此,我将使用带有visibility=GONE 的CustomLayout,然后当WebView(布局内)完成加载时,我将淡入布局。使用FrameLayout 并将其放在层次结构的顶部。

【讨论】:

我目前正在使用 DialogFragment ,我想在 DialogFragment 中预加载 webview。加载完成后,我想让 DialogFragment 显示。那么如何实现呢?

以上是关于延迟弹出对话框片段,直到其中的 webview 完成加载的主要内容,如果未能解决你的问题,请参考以下文章

webView loadUrl 打开浏览器选择对话框

WebView中的弹出对话框无法显示,但可以在chrome浏览器中正常工作

在 webview 片段中实现后退按钮

检测后退按钮但不关闭对话框片段

延迟jquery ui对话框关闭,直到回调完成

导航到与 webview 片段不同的片段后,如何在 webview 中返回?