当前位置:  开发笔记 > 编程语言 > 正文

无法在片段中实现进度条和webview

如何解决《无法在片段中实现进度条和webview》经验,为你挑选了1个好方法。



1> Pavneet_Sing..:

1)您WebViewProgressBar其内部Fragment的布局和您使用的inflater初始化和return你的片段布局

2.)因此,片段布局的每个视图都在rootView返回的内部inflater,您必须使用它rootView来初始化属于您的其他视图Fragment

3.)使用mwebView变量而不是创建局部变量view

4.)shouldOverrideUrlLoading什么都不做,所以添加view.load并返回true

public class Home_Fragment extends Fragment {

    public WebView mwebView;
    ProgressBar bar;

    // ^^^ declare bar 
    public Home_Fragment() {

        // Required empty public constructor
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View rootView = inflater.inflate(R.layout.fragment_home_, null);
        bar = (ProgressBar) rootView.findViewById(R.id.progressBar);
        // initialize bar

        mwebView = (WebView) rootView.findViewById(R.id.webView);
        mwebView.loadUrl("https://mbasic.facebook.com");
        mwebView.getSettings().setJavaScriptEnabled(true);
        mwebView.setWebViewClient(new MyWebViewClient());
        return rootView;
    }

    private class MyWebViewClient extends WebViewClient {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
           view.loadUrl(url);
           return true; 
        }

        @Override
        public void onPageStarted(final WebView view, final String url, final Bitmap favicon) {
            bar.setVisibility(View.VISIBLE);
            // ^^^ use it as it is

            super.onPageStarted(view, url, favicon);
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            bar.setVisibility(View.GONE);
            // ^^^ use it as it is
            super.onPageFinished(view, url);
        }
    }

}

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有