Android的动画:隐藏/显示菜单 [英] Android Animation: Hide/Show Menu
本文介绍了Android的动画:隐藏/显示菜单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想为动画添加到我的应用程序,将隐藏或显示在单一的水龙头的菜单。基本上类似于脉冲新闻阅读器的文章观点的东西。我可以进行动画菜单容器。然而,菜单不会滑下同时作为主容器是创造空间用于菜单支架。我想知道如何解决这个问题。
下面是我的动画code:
如果(homeTabBar.getVisibility()== View.GONE){
homeTabBar.setVisibility(View.VISIBLE);
最终的动画tabBlockHolderAnimation = AnimationUtils.loadAnimation(ArticleActivity.this,R.anim.tab_down);
tabBlockHolderAnimation.setFillAfter(真正的);
homeTabBar.startAnimation(tabBlockHolderAnimation);
}其他{
最终的动画tabBlockHolderAnimation = 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屋!
查看全文