android - 以良好的方式显示 WebView fragment 中的进度

标签 android android-fragments android-webview progressdialog android-4.0-ice-cream-sandwich

我正在开发一个平板电脑应用程序,屏幕上有 2 个 fragment 。一个 fragment 是一个 WebView。默认情况下,用户不会收到任何反馈来让他们知道网页正在加载。

为了给用户反馈,我在页面加载开始时显示一个进度对话框,并在页面完成时将其删除。这在大多数情况下都很有效,除非链接重定向多次。

当发生重定向时,对话会多次显示和关闭,这看起来很糟糕。我想如果我能阻止对话使背景变暗就可以接受,但经过一段时间的搜索我还没有找到这样做的方法。

理想情况下,如果我可以在 webview fragment 的中心添加一个加载栏并在完成后隐藏/关闭它,那就太好了。有什么想法吗?

private class InnerWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {

        view.loadUrl(url);
        return true;
    }

    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        if (dialog==null)
            dialog = new ProgressDialog(getActivity());
        dialog.setMessage("Loading...");
        dialog.setIndeterminate(true);
        dialog.setCancelable(false);
        dialog.show();
        Log.d("WEBVIEW", "loading "+ url);
        super.onPageStarted(view, url, favicon);
    }

    @Override
    public void onPageFinished(WebView view, String url) {
        dialog.dismiss();
        mUrl=url; // save final url so user can open in deafult browser
        super.onPageFinished(view, url);
    }

}

最佳答案

我刚刚以一种我认为非常优雅的方式做到了这一点。

我制作了一个自定义布局,其中包含一个 WebView 和一个位于中心的进度对话框。该对话框最初设置为“GONE”(消失),并在 onPageStarted 中加载网页时设置为可见。在 onPageFinished 方法中再次将其设置为 GONE。

Fragment 在 onCreateView 方法中膨胀并返回此自定义 View 。

关于android - 以良好的方式显示 WebView fragment 中的进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10746946/

相关文章:

android - onCreateView 中的 mainLayout 不适用于 4.4 及更低版本

java - 如何使用简单的字符串调用 SOAP 网络服务(字符串格式的 xml)

android - 使用相同 fragment 设置 viewpager 无法按预期工作

java - 我做错了什么让我的应用程序在启动时运行?

android - ListView 中的 webview : Touch events conflicts Hence unable to pinch Zoom IN/OUT in android

java - 自定义 GridView

android - 无法从阵列适配器设置 SwipeFlingAdapterView

android - 如果在 android 中打开键盘,SnackBar 无法正确显示

android - 将 RecyclerView(Recycler Fragment) 添加到对话框

java - Android:可绘制图像作为字符串中 img 标签的 src