【发布时间】: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>
【问题讨论】:
-
使用transition api 实现可见性变化动画。检查此答案以获取更多详细信息stackoverflow.com/a/56144349/1372866
标签: android android-layout animation android-animation