【问题标题】:Hiding ActionBar (Timed) and Animating Views隐藏 ActionBar(定时)和动画视图
【发布时间】:2014-03-23 21:06:31
【问题描述】:

这基本上是我想要发生的事情:

散文:

隐藏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。)

【问题讨论】:

    标签: java android animation android-actionbar fragment


    【解决方案1】:

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

    【讨论】:

    • 谢谢。这看起来真的很好。但是如何让它在getActionBar().show() 之前等待一段时间(即不立即显示ActionBar)?
    • 是的,比如说:动画结束后,等待3秒,显示ActionBar
    • 像魅力一样工作! :) 谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多