如何在android Fragment中显示webview的全屏加载微调器?

时间:2014-07-04 02:10:23

标签: android android-fragments webview

我正在开发一个应用程序,其中包含一个片段以在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#

任何人都可以告诉我应该写什么。实现这个功能。

1 个答案:

答案 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();
            }
        });
    }
}

enter image description here