Android的动画:隐藏/显示菜单 [英] Android Animation: Hide/Show Menu

查看:109
本文介绍了Android的动画:隐藏/显示菜单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想为动画添加到我的应用程序,将隐藏或显示在单一的水龙头的菜单。基本上类似于脉冲新闻阅读器的文章观点的东西。我可以进行动画菜单容器。然而,菜单不会滑下同时作为主容器是创造空间用于菜单支架。我想知道如何解决这个问题。

下面是我的动画code:

 如果(homeTabBar.getVisibility()== View.GONE){
    homeTabBar.setVisibility(View.VISIBLE);
    最终的动画tab​​BlockHolderAnimation = AnimationUtils.loadAnimation(ArticleActivity.this,R.anim.tab_down);

    tabBlockHolderAnimation.setFillAfter(真正的);
    homeTabBar.startAnimation(tabBlockHolderAnimation);


}其他{

    最终的动画tab​​BlockHolderAnimation = AnimationUtils.loadAnimation(ArticleActivity.this,R.anim.tab_up);
    tabBlockHolderAnimation.setAnimationListener(新AnimationListener(){



    @覆盖
    公共无效onAnimationEnd(动画动画){

    // TODO自动生成方法存根

    homeTabBar.setVisibility(View.GONE);
   }
});

tabBlockHolderAnimation.setFillAfter(真正的);

homeTabBar.startAnimation(tabBlockHolderAnimation);
 

解决方案

 公共无效切换(){
    TranslateAnimation动画= NULL;

    !isOpen会= isOpen会;

    如果(isOpen会){
        layoutRoot.setVisibility(View.VISIBLE);
        动画=新TranslateAnimation(0.0,0.0,layoutRoot.getHeight(),0.0);
    } 其他 {
        动画=新TranslateAnimation(0.0,0.0,0.0,layoutRoot.getHeight());
        anim.setAnimationListener(collapseListener);
    }

    anim.setDuration(300);
    anim.setInterpolator(新AccelerateInterpolator(1.0F));
    layoutRoot.startAnimation(动画);
}

Animation.AnimationListener collapseListener =新Animation.AnimationListener(){
    公共无效onAnimationEnd(动画动画){
        layoutRoot.setVisibility(View.GONE);
    }

    @覆盖
    公共无效onAnimationRepeat(动画动画){
    }

    @覆盖
    公共无效onAnimationStart(动画动画){
    }
};
 

I am trying to add an animation to my app that will hide or show a menu on single tap. Basically something similar to Pulse news readers article view. I am able to animate the menu container. However,the menu does not slide down at the same time as the main container is creating space for the menu holder. I would like to know how to fix this issue.

Here is my animation code:

if(homeTabBar.getVisibility() == View.GONE){
    homeTabBar.setVisibility(View.VISIBLE);
    final Animation tabBlockHolderAnimation = AnimationUtils.loadAnimation(ArticleActivity.this, R.anim.tab_down);

    tabBlockHolderAnimation.setFillAfter(true);
    homeTabBar.startAnimation(tabBlockHolderAnimation);


}else{

    final Animation tabBlockHolderAnimation = AnimationUtils.loadAnimation(ArticleActivity.this, R.anim.tab_up);
    tabBlockHolderAnimation.setAnimationListener(new AnimationListener(){



    @Override
    public void onAnimationEnd(Animation animation) {

    // TODO Auto-generated method stub

    homeTabBar.setVisibility(View.GONE);
   }
});

tabBlockHolderAnimation.setFillAfter(true);

homeTabBar.startAnimation(tabBlockHolderAnimation);

解决方案

public void toggle() {
    TranslateAnimation anim = null;

    isOpen = !isOpen;

    if (isOpen) {
        layoutRoot.setVisibility(View.VISIBLE);
        anim = new TranslateAnimation(0.0f, 0.0f, layoutRoot.getHeight(), 0.0f);
    } else {
        anim = new TranslateAnimation(0.0f, 0.0f, 0.0f, layoutRoot.getHeight());
        anim.setAnimationListener(collapseListener);
    }

    anim.setDuration(300);
    anim.setInterpolator(new AccelerateInterpolator(1.0f));
    layoutRoot.startAnimation(anim);
}

Animation.AnimationListener collapseListener = new Animation.AnimationListener() {
    public void onAnimationEnd(Animation animation) {
        layoutRoot.setVisibility(View.GONE);
    }

    @Override
    public void onAnimationRepeat(Animation animation) {
    }

    @Override
    public void onAnimationStart(Animation animation) {
    }
};

这篇关于Android的动画:隐藏/显示菜单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆