setAnimationListener仅在DrawerLayout打开后才能工作

时间:2014-12-04 20:04:29

标签: android animation

我有一个MainActivity,它有DrawerLayout,一些片段和布局。我的类从FragmentActivity扩展。

这个布局有边距-200(它的布局超出界限我的活动)。我想用动画显示这个布局。

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

当我点击开始动画的按钮时的代码:

Animation slide = 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(GravityCompat.START); } else { mDrawerLayout.openDrawer(GravityCompat.START); }

0 个答案:

没有答案