【问题标题】:Animation for relative layout in Android StudioAndroid Studio 中相对布局的动画
【发布时间】:2021-09-24 13:57:52
【问题描述】:

我正在尝试在我的一个 activity_main.xml 布局中为相对布局设置动画。我希望相对布局在可见性设置为可见时向上滑动,并在可见性设置为不可见/不可见时向下滑动。 但我只能让动画向上滑动和向下滑动一次。当我再次单击按钮以使布局再次向上滑动(并设置为可见)时,布局只是弹出而没有动画;以及当我再次单击按钮使其向下滑动(并设置为消失/不可见)时,布局也只是消失而没有动画。 我将衷心感谢您的帮助。非常感谢!

这是我尝试过的:

Private RelativeLayout relLayoutInfo = findViewById(R.id.rel_Layout_Info);
Private Button btnSlideUp = findViewById(R.id.btn_Up);
Private Button brnSlideDown = findViewById(R.id.btn_Down);
private Animation extraInfoAnimationEnter = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.details_info_animation_enter);
Private extraInfoAnimationExit = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.details_info_animation_exit);

btnSlideUp.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                relLayoutInfo.setAnimation(extraInfoAnimationEnter);
                relLayoutInfo.setVisibility(View.VISIBLE);
            }
        });
btnSlideDown.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                relLayoutInfo.setAnimation(extraInfoAnimationExit);
                relLayoutInfo.setVisibility(View.GONE);
            }
        });

这是 extraInfoAnimationEnter 的动画文件:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate
        android:fromYDelta="100%"
        android:toYDelta="0"
        android:duration="500">

    </translate>
</set>

这是 extraInfoAnimationExit 的动画文件:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate
        android:fromYDelta="0"
        android:toYDelta="100%"
        android:duration="500">

    </translate>

</set>

【问题讨论】:

标签: android android-layout animation android-animation


【解决方案1】:

这可能不是确切的解决方案,而只是一个建议,还有一个MotionLayout 也可用here

还有AndroidDevs官方频道的播放列表here

MotionLayout 非常适合动画,但如果这不是您想要的,我们可以尝试在您的 RelativeLayout 中实现它:)

【讨论】:

  • MotionLayout 仅适用于约束布局 2.0.0 及更高版本,在这种情况下这是一个可行的解决方案。
猜你喜欢
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-09
相关资源
最近更新 更多