gpt4 book ai didi

android - 以一种很好的方式在 WebView fragment 中显示进度

转载 作者:行者123 更新时间:2023-11-29 00:39:01 27 4
gpt4 key购买 nike

我正在开发一个平板电脑应用程序,它在屏幕上有 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com