Android setAnimationListener仅在抽屉布局打开后工作

Android setAnimationListener仅在抽屉布局打开后工作,android,animation,Android,Animation,我有一个MainActivity,它有抽屉布局、一些片段和布局。我的类从FragmentActivity扩展而来 这个版面的边距为-200(它在我的活动范围之外做这个版面)。我想用动画显示这个版面 问题是:当我点击启动动画的按钮时,动画不会运行(当我调试mey code animation.setAnimationListener时,不要调用),但当我向右滑动屏幕并调用drawerlayout来显示它时,在调用animation.setAnimationListener之后…我做错了什么 单击启

我有一个MainActivity,它有抽屉布局、一些片段和布局。我的类从FragmentActivity扩展而来

这个版面的边距为-200(它在我的活动范围之外做这个版面)。我想用动画显示这个版面

问题是:当我点击启动动画的按钮时,动画不会运行(当我调试mey code animation.setAnimationListener时,不要调用),但当我向右滑动屏幕并调用drawerlayout来显示它时,在调用animation.setAnimationListener之后…我做错了什么

单击启动动画的按钮时的代码:

动画幻灯片=null

    slide = AnimationUtils.loadAnimation(getApplicationContext(),
            R.anim.share_up);
    right_menu.startAnimation(slide);`

    slide.setAnimationListener(new AnimationListener() {

        @Override
        public void onAnimationStart(Animation animation) {

        }

        @Override
        public void onAnimationRepeat(Animation animation) {
        }

        @Override
        public void onAnimationEnd(Animation animation) {

            right_menu.clearAnimation();

            FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(
                    LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
            layoutParams.setMargins(0, topmargin, 0, 0);
            right_menu.setLayoutParams(layoutParams);

        }

    });
我调用抽屉布局的代码很简单:

if(mDrawerLayout.isDrawerOpen(GravityCompat.START)){
mDrawerLayout.closeDrawer(重力compat.START);
}否则{
mDrawerLayout.openDrawer(重力compat.START);

}

1st slide.setAnimationListener和2nd right_菜单。开始动画(幻灯片);另一方面,我的布局名称是right_menu(右菜单)。我想用动画显示右菜单,否则我不明白你的意思。首先设置AnimationListener。完成后,您可以启动动画。如果你用另一种方式来做,动画将开始,但监听器可能不会被设置为yetok,我会修复这个问题,但直到我调用DrawerLayout它才工作。我的问题的解决方法是:代码(我忘记了添加setAnimation):动画幻灯片=null;slide=AnimationUtils.loadAnimation(getApplicationContext(),R.anim.share\u up);slide.setAnimationListener(新建AnimationListener(){….};右菜单.setAnimation(幻灯片);右菜单.startAnimation(幻灯片);