使用支持工具栏时动画滞后

时间:2015-01-29 15:27:41

标签: android android-toolbar android-cardview

我正在使用support.v7 Cardview,当我点击它们时,我制作了一个动画,因此cardview展开以显示更多信息。 这工作得非常顺利,但现在我添加了一个工具栏作为支持操作栏,现在动画是滞后的,我不明白为什么:

我用它来扩展cardview

public  void expand(final View v,final View vi) {
    v.measure(LayoutParams.MATCH_PARENT,                                         
     WindowManager.LayoutParams.WRAP_CONTENT);
    final int targetHeight = getHeight((ListView)v);
    v.getLayoutParams().height = 0;
    v.setVisibility(View.VISIBLE);
    Animation a = new Animation()
    {
        @Override
        protected void applyTransformation(float interpolatedTime, Transformation t) {
            vi.setAlpha(1-interpolatedTime*10);
            v.setAlpha(1-vi.getAlpha());
            double heigt = -(targetHeight / (interpolatedTime + 1)) + targetHeight;
            v.getLayoutParams().height =new Double(heigt*2).intValue();

            v.requestLayout();
        }

        @Override
        public boolean willChangeBounds() {
            return true;
        }
    };

    // 1dp/ms
    a.setDuration(750);
    v.startAnimation(a);
    Handler h = new Handler();
    h.postDelayed(new Runnable() {
        @Override
        public void run() {
            v.getLayoutParams().height=targetHeight;
            v.requestLayout();
            vi.setVisibility(View.GONE);
        }
    },a.getDuration()+100);

}

这就是我创建工具栏的方式:

toolbar =(工具栏)findViewById(R.id.toolbar);

    setSupportActionBar(toolbar);
    toolbar.setTitle("CocktailListe");
    toolbar.setSubtitle("Deine Lieblingscocktails in einer app");
    toolbar.setTitleTextColor(getResources().getColor(R.color.text_main));
    toolbar.setSubtitleTextColor(getResources().getColor(R.color.text_actionbar_secondary));
    toolbar.setBackgroundColor(Color.parseColor(db.getActionbarColor()));

我很困惑,不知道为什么它在使用工具栏时滞后,我希望有人可以提供帮助

0 个答案:

没有答案