Java 隐藏操作栏(定时)和动画视图

Java 隐藏操作栏(定时)和动画视图,java,android,animation,android-actionbar,fragment,Java,Android,Animation,Android Actionbar,Fragment,以下是我希望发生的事情: 散文: 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_le

以下是我希望发生的事情:

散文:

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();
隐藏
操作栏
。然后做一些动画。等一下。再次显示
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);
在基本代码中:

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();
实际上:

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)创建新的
可运行文件
,(3)创建两个
ActionBar的实例(一个用于隐藏,一个用于显示),甚至可能还有一些我不再记得的方法

基本上,到目前为止,结果是(1)整个时间都显示
ActionBar
,(2)或者整个程序等待,显示
ActionBar
,然后播放动画,或者(3)某个版本的相同无序运行

所以我想我的问题是:

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();
如何隐藏
操作栏
,制作一两个动画,然后再次显示?(仅供参考:我在扩展
片段
,而不是
活动
)的类中运行此功能)

使用。在
动画
的末尾,再次显示
操作栏

    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);
使用。在
动画
的末尾,再次显示
操作栏

    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);

非常感谢。看起来真不错。但是我如何让它在
getActionBar().show()
(即,不立即显示
ActionBar
)之前等待一段时间呢?是的,比方说:动画完成后,等待3秒钟,show
ActionBar
。效果很好!)谢谢,谢谢。看起来真不错。但是我如何让它在
getActionBar().show()
(即,不立即显示
ActionBar
)之前等待一段时间呢?是的,比方说:动画完成后,等待3秒钟,show
ActionBar
。效果很好!)非常感谢。