动画完成后如何隐藏进度条

我有一个包含 aWebView和的活动ProgressBar。在网页加载过程中,进度条出现并逐渐水平填充。View.GONE动画完成后如何设置进度条的可见性?


public class WebviewActivity extends AppCompatActivity {

    WebView myWebView;

    ProgressBar pBar;

    ProgressBar myProgressBar;


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);


        setContentView(R.layout.fragment_webview);

    }


    @Override

    protected void onStart() {

        super.onStart();


        setContentView(R.layout.fragment_webview);


        myProgressBar = findViewById(R.id.mProgressBar);

        myProgressBar.setMax(100);


        String url = getIntent().getStringExtra("url");

        myWebView = findViewById(R.id.webview01);

        myWebView.setWebViewClient(new WebViewClient());

        WebSettings webSettings = myWebView.getSettings();

        webSettings.setJavaScriptEnabled(true);

        myWebView.loadUrl(url);


        myWebView.setWebChromeClient(new WebChromeClient() {

            @Override

            public void onProgressChanged(WebView view, int newProgress) {

                super.onProgressChanged(view, newProgress);

                myProgressBar.setProgress(newProgress);


                if (newProgress == 100) {

                    AlphaAnimation fadeOut;

                    fadeOut = new AlphaAnimation(1,0);

                    fadeOut.setDuration(500);

                    fadeOut.setFillAfter(true);

                    myProgressBar.startAnimation(fadeOut);

//                    myProgressBar.setVisibility(View.GONE);

                } else {

                    myProgressBar.setVisibility(View.VISIBLE);

                }

            }

        });


    }


    private class WebViewClient extends android.webkit.WebViewClient {

        @Override

        public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request){

            String url=request.getUrl().toString();


            view.loadUrl(url);

            return true;

       

        }

    }

}


陪伴而非守候
浏览 169回答 2
2回答

MMMHUHU

使用监听器:fadeOut.setAnimationListener(new Animation.AnimationListener() {    @Override    public void onAnimationStart(Animation animation) {}    @Override    public void onAnimationRepeat(Animation animation) {}    @Override    public void onAnimantionEnd(Animation animation) {        myProgressBar.setVisibility(View.GONE);    }});

繁华开满天机

尝试为动画对象设置一个动画监听器 (fadeOut):myWebView.setWebChromeClient(new WebChromeClient() {            @Override            public void onProgressChanged(WebView view, int newProgress) {                super.onProgressChanged(view, newProgress);                myProgressBar.setProgress(newProgress);                if (newProgress == 100) {                    AlphaAnimation fadeOut;                    fadeOut = new AlphaAnimation(1, 0);                    fadeOut.setDuration(500);                    fadeOut.setFillAfter(true);                    fadeOut.setAnimationListener(new Animation.AnimationListener() {                        @Override                        public void onAnimationStart(Animation animation) {                            // whatever you want to happen when the fadeOut animation starts                        }                        @Override                        public void onAnimationEnd(Animation animation) {                            // whatever you want to happen when the fadeOut animation ends                            myProgressBar.setVisibility(View.GONE);                        }                        @Override                        public void onAnimationRepeat(Animation animation) {                            // whatever you want to happen when the fadeOut animation repeats itself                        }                    });                    myProgressBar.startAnimation(fadeOut);                } else {                    myProgressBar.setVisibility(View.VISIBLE);                }            }        });通过上面的回调,您可以挂钩AnimationStart,AnimationEnd和AnimationRepeat。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java