简体   繁体   English

在Android Studio中加载页面之前隐藏进度栏

[英]Progressbar hidden before page loaded in android studio

I have a problem with android studio I created a fragment contains webview and progressbar the progress bar disappeared before the url in the web view loaded how to solve this problem? 我在android studio中遇到了问题,我创建了一个包含webview和progressbar的片段,进度条消失了,然后在加载Web视图中的URL之前如何解决此问题? This is the java class file 这是java类文件

public class FacebookPage extends Fragment {
    View myView;
    WebView myWebView;
    WebSettings webSettings;
    ProgressDialog progressDialog;
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
        myView=inflater.inflate(R.layout.facebook_page,container,false);                
        return myView;
    };

    @Override
    public void onViewCreated(final View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        myWebView = (WebView) view.findViewById(R.id.webview);
        String url="https://www.facebook.com/TahrirLounge/";
        myWebView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }

            @Override
            public void onPageFinished(WebView webView, String url) {
                super.onPageFinished(webView, url);
                view.findViewById(R.id.progressBar_facebook_page).setVisibility(View.GONE);
            }
        });

        myWebView.loadUrl(url);
        webSettings = myWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
}
}

This is the xml file: 这是xml文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <WebView
        android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
    </WebView>

    <ProgressBar
        android:id="@+id/progressBar_facebook_page"
        style="?android:attr/progressBarStyle"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_centerInParent="true"
        android:visibility="visible" />

</RelativeLayout>

and I also now have this error at the log: 而且我现在在日志中也有此错误:

E/AndroidRuntime: FATAL EXCEPTION: main Process: com.mostafa.tahrirlounge, PID: 8952 java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources$Theme android.content.Context.getTheme()' on a null object reference at android.app.AlertDialog.resolveDialogTheme(AlertDialog.java:154) at android.app.AlertDialog.(AlertDialog.java:109) at android.app.ProgressDialog.(ProgressDialog.java:77) at android.app.ProgressDialog.show(ProgressDialog.java:110) at android.app.ProgressDialog.show(ProgressDialog.java:99) at com.mostafa.tahrirlounge.FacebookPage.(FacebookPage.java:24) at com.mostafa.tahrirlounge.MainActivity.onNavigationItemSelected(MainActivity.java:78) at android.support.design.widget.NavigationView$1.onMenuItemSelected(NavigationView.java:156) at android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:822) at android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:156) at android.support.v7.view.menu.MenuBuilder.pe E / AndroidRuntime:致命例外:主进程:com.mostafa.tahrirlounge,PID:8952 java.lang.NullPointerException:尝试调用虚拟方法'android.content.res.Resources $ Theme android.content.Context.getTheme()' android.app.AlertDialog.resolveDialogTheme(AlertDialog.java:154)在android.app.AlertDialog。(AlertDialog.java:109)在android.app.ProgressDialog。(ProgressDialog.java:77)在null对象上引用.app.ProgressDialog.show(ProgressDialog.java:110)位于android.app.ProgressDialog.show(ProgressDialog.java:99)位于com.mostafa.tahrirlounge.FacebookPage。(FacebookPage.java:24)位于com.mostafa.tahrirlounge位于android.support.design.widget.NavigationView $ 1.onMenuItemSelected(NavigationView.java:156)的android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:的.MainActivity.onNavigationItemSelected(MainActivity.java:78) 822)在android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:156)在android.support.v7.view.menu.MenuBuilder.pe rformItemAction(MenuBuilder.java:969) at android.support.design.internal.NavigationMenuPresenter$1.onClick(NavigationMenuPresenter.java:342) at android.view.View.performClick(View.java:4757) at android.view.View$PerformClick.run(View.java:19757) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5233) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693) rformItemAction(MenuBuilder.java:969)在android.support.design.internal.NavigationMenuPresenter $ 1.onClick(NavigationMenuPresenter.java:342)在android.view.View.performClick(View.java:4757)在android.view.View $在android.os.Looper.loop(Looper)上的android.os.Handler.handleCallback(Handler.java:739)上的PerformClick.run(View.java:19757)在android.os.Handler.dispatchMessage(Handler.java:95)上.java:135),位于android.app.ActivityThread.main(ActivityThread.java:5233),位于java.lang.reflect.Method.invoke(本机方法),位于java.lang.reflect.Method.invoke(方法。java:372) )在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:898)在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)

use this 用这个

public class FacebookPage extends Fragment {

    WebView webView;

    ProgressDialog progress;
    @Nullable
    @Override  
 public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
                             Bundle savedInstanceState) {
        View mainView = (View) inflater.inflate(R.layout.facebook_page, container, false);
        WebView webView = (WebView)mainView.findViewById(R.id.webview);
        webView.getSettings().setJavaScriptEnabled(true);


        webView.loadUrl("https://www.facebook.com/TahrirLounge/");

        progress = ProgressDialog.show(this, "Loading",
                    "Loading", true);
        webView.setWebViewClient(new WebViewClient() {

           public void onPageFinished(WebView view, String url) {
                if (progress != null)
                    progress.dismiss();
            }
        });
        return mainView;


    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM