2010-09-12 108 views
2

我想在我的android应用程序中有一个按钮触发一个窗体的向下滑动视图。我想要在屏幕顶部显示一个视图,在屏幕底部显示一个列表,并且我希望在点击按钮时在两者之间出现滑动窗体。向下滑动视图在android中

我没有问题显示视图,但似乎无法将其从隐藏的动画显示在屏幕上显示。

关于如何工作的任何想法?

回答

8
public void doSlideDown(View view){ 
    RelativeLayout myView = (RelativeLayout)findViewById(R.id.my_view); 
     addListingView.setVisibility(myView.VISIBLE); 

     Animation slideDown = setLayoutAnim_slidedown(); 
     myView.startAnimation(slideDown); 
} 

public void doSlideUp(View view){ 
    RelativeLayout myView = (RelativeLayout)findViewById(R.id.my_view); 

     Animation slideUp = setLayoutAnim_slideup(); 
     myView.startAnimation(slideUp); 

} 

public Animation setLayoutAnim_slidedown() { 

     AnimationSet set = new AnimationSet(true); 

     Animation animation = new TranslateAnimation(
       Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 
       0.0f, Animation.RELATIVE_TO_SELF, -1.0f, 
       Animation.RELATIVE_TO_SELF, 0.0f); 
     animation.setDuration(800); 
     animation.setAnimationListener(new AnimationListener() { 

      @Override 
      public void onAnimationStart(Animation animation) { 
       // TODO Auto-generated method stub 
       // MapContacts.this.mapviewgroup.setVisibility(View.VISIBLE); 

      } 

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

      } 

      @Override 
      public void onAnimationEnd(Animation animation) { 
       // TODO Auto-generated method stub 
       Log.d("LA","sliding down ended"); 

      } 
     }); 
     set.addAnimation(animation); 

     LayoutAnimationController controller = new LayoutAnimationController(
       set, 0.25f); 


     return animation; 
    } 

public Animation setLayoutAnim_slideup() { 

     AnimationSet set = new AnimationSet(true); 

     Animation animation = new TranslateAnimation(
       Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 
       0.0f, Animation.RELATIVE_TO_SELF, 0.0f, 
       Animation.RELATIVE_TO_SELF, -1.0f); 
     animation.setDuration(800); 
     animation.setAnimationListener(new AnimationListener() { 

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

      } 

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

      } 

      @Override 
      public void onAnimationEnd(Animation animation) { 
       // TODO Auto-generated method stub 
       RelativeLayout bodyView = (RelativeLayout)findViewById(R.id.bodyView); 
       RelativeLayout myView = (RelativeLayout)findViewById(R.id.my_view); 
       addListingView.clearAnimation(); 
       bodyView.removeView(myView); 
      } 
     }); 
     set.addAnimation(animation); 

     LayoutAnimationController controller = new LayoutAnimationController(
       set, 0.25f); 

     return animation; 

}