簡體   English   中英

隱藏ActionBar(定時)和動畫視圖

[英]Hiding ActionBar (Timed) and Animating Views

這基本上是我想發生的事情:

散文:

隱藏ActionBar 然后做一些動畫。 等一下 再次顯示ActionBar

在基本代碼中:

ActionBar actionBar = getActivity().getActionBar();
actionBar.hide();

TextView someTextView = (TextView) rootView.findViewById(R.id.some_textview);
Animation a = AnimationUtils.loadAnimation(getActivity(), android.R.anim.slide_in_left);
int duration = 1000;
a.setDuration(duration);
someTextView.startAnimation(a);

wait(duration);

actionBar.show();

實際上:

當然,代碼的編寫方式對我想要的不起作用。 我嘗試了幾種解決方案,包括:(1)使用Thread.sleep ,(2)創建新的Runnables ,(3)創建兩個ActionBar實例(一個用於隱藏,一個用於顯示),甚至還有一些其他方法可以我不記得了。

基本上,到目前為止,結果是:(1)始終顯示ActionBar ,(2)或整個程序等待,顯示ActionBar ,然后播放動畫,或者(3)一些版本同一無序運行。

所以我想我的問題是:

如何隱藏ActionBar ,制作一兩個動畫,然后再次顯示? (僅供參考:我正在擴展Fragment而不是Activity的類中運行此代碼。)

使用AnimationListener Animation的結尾,再次顯示ActionBar

    animation.setAnimationListener(new Animation.AnimationListener() {

        @Override
        public void onAnimationStart(Animation animation) {
            // You can hide ActionBar here
            getActivity().getActionBar().hide();
        }

        @Override
        public void onAnimationRepeat(Animation animation) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onAnimationEnd(Animation animation) {
            // getActivity().getActionBar().show();
            // and according to you, use Handler
            new Handler().postDelayed(new Runnable() {

                @Override
                public void run() {
                    getActivity().getActionBar().show();
                }
            }, 3 * 1000);
        }
    });
    someTextView.startAnimation(animation);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM