将扩展动画添加到 LinearLayout?

Add exapanding animation to a LinearLayout?

实际上在我的应用程序中,如果我单击 按钮LinearLayout set onCreate at "height:0" 设置为 "height:630" 但没有任何动画,它立即出现,所以不太好看。

我怎样才能给它添加任何动画,比如它正在弹跳或刚好出现?

这是我的 onClick 代码,其中我将高度设置为布局

menu.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        ViewGroup.LayoutParams params = recyclerContainner.getLayoutParams();
        if(params.height == 0) {
            params.height = 630;

            recyclerContainner.setLayoutParams(params);


        }else {
            params.height = 0;
            recyclerContainner.setLayoutParams(params);

        }

    }
});

我也尝试过使用 BounceIterpolator 对其进行动画处理,但它只是对 LinearLayout 中的内容进行动画处理,而不是调整其大小

这是它的代码

menu.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        ViewGroup.LayoutParams params = recyclerContainner.getLayoutParams();
        if(params.height == 0) {

            params.height = 630;

            recyclerContainner.setLayoutParams(params);

            BounceInterpolator bounceInterpolator = new BounceInterpolator();
            ObjectAnimator anim = ObjectAnimator.ofFloat(recyclerContainner, "translationY", 100f, 0 );
            anim.setInterpolator(bounceInterpolator);
            anim.setDuration(1100).start();


        }else {
            params.height = 0;
            recyclerContainner.setLayoutParams(params);

        }

    }
});

试试这个:

在创建集上:

recyclerContainer.animate().scaleY(0.0f).setDuration(0);

点击:

recyclerContainer.animate().scaleY(1.0f).setDuration(500);

编辑:这需要 recyclerContainer 的初始高度为 630 高度或 "popped up" 高度应该是什么,如果初始高度为 0,则 0 的缩放将导致 0 :)

编辑: 新的点击代码:

menu.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

        if(isUp) {
            recyclerContainer.animate().scaleY(0.0f).setDuration(500);
            isUp = false;
        }else {
            recyclerContainer.animate().scaleY(1.0f).setDuration(500);
            isUp = false;
        }

    }
});

其中“isUp 是一个布尔值,您在 onCreate 中设置 scaleY 后最初声明为 false。

我觉得对你来说有点困难,在执行转换的同时对其进行动画处理,不是吗?

我建议你使用this library.

一个 android 库,它带来了带有各种动画的可扩展布局。您可以包含可选内容并在任何地方使用。

希望对您有所帮助,如果不是您的答案请忽略。