我正在开发一个应用程序,其中包含一个片段以在webview上显示网站。对于慢速连接,加载网站需要一些时间,应用程序空白几秒钟,所以我想在我的片段中显示一个全屏加载微调器。我找到了源代码,但我不知道如何在扩展片段的类中实现它。
这是我的片段,我想在显示网站之前显示全屏加载。
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View V = inflater.inflate(R.layout.fragment_a, container, false);
String url="http://www.hotelsearcher.net/";
Bundle args = getArguments();
if (args != null){
url = args.getString("position");
}
WebView webView= (WebView) V.findViewById(R.id.webView1);
WebSettings webViewSettings = webView.getSettings();
webViewSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webViewSettings.setJavaScriptEnabled(true);
webViewSettings.setPluginState(PluginState.ON);
webView.setWebViewClient(new WebViewClient());
adview =(AdView) V.findViewById(R.id.ads);
Ads.loadAds(adview);
webView.loadUrl(url);
return V;
}
}
我发现这是代码:https://gist.github.com/daichan4649/5344979/download#
任何人都可以告诉我应该写什么。实现这个功能。
答案 0 :(得分:0)
在onCreateView()
中,您需要显示ProgressBar
,因为webView.loadUrl(url)
需要时间来加载WebView
上的互联网内容。因此,当您WebView
加载内容时,您需要注册回电。你可以这样听:
mWebView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
// Cancel your ProgressBar here
}
});
在onPageFinished()
内部取消ProgressBar
,因为WebView
已完成加载内容。
工作代码
public class MainActivity extends Activity {
private String url = "https://www.google.co.in/";
ProgressDialog pb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
pb = new ProgressDialog(this);
pb.setTitle("Connecting Station");
pb.setMessage("Please Wait....");
pb.setCancelable(false);
pb.show();
WebView webView = (WebView) findViewById(R.id.webView);
WebSettings webViewSettings = webView.getSettings();
webViewSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webViewSettings.setJavaScriptEnabled(true);
webViewSettings.setPluginState(PluginState.ON);
webView.loadUrl(url);
webView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
pb.dismiss();
}
});
}
}