gpt4 book ai didi

android - 如何使用支持库为屏幕内外的 android fragment 设置动画

转载 作者:太空宇宙 更新时间:2023-11-03 12:33:41 27 4
gpt4 key购买 nike

我试图在我的 Activity 中显示一个 fragment ,其中包含一个菜单,它应该从屏幕右侧滑入,直到用户再次按下按钮或按下后退按钮将其关闭,然后它应该滑动到它的来源,这两个 Action 当然都有动画。问题是 fragment 滑入,但我无法让它随着动画滑出,它只是突然消失。我读过一些类似的帖子,但没有找到适合我的情况的有效解决方案。

这是应该完成工作的代码:

private void showMenuFragment() {

if (this.frMenu == null) {
this.frMenu = new MenuFragment();
FragmentTransaction transaction = this.getSupportFragmentManager()
.beginTransaction();
transaction.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_right);
transaction.replace(R.id.fr_side_menu, this.frMenu);
transaction.addToBackStack(MenuFragment.class.getName());
transaction.commit();
}
else {
this.frMenu = null;
this.onBackPressed();
}
}

动画:

文件 slide_in_right.xml

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

<translate
android:duration="500"
android:fromXDelta="100%"
android:toXDelta="0%" >
</translate>

</set>

文件 slide_out_right.xml

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

<translate
android:duration="500"
android:fromXDelta="0%"
android:toXDelta="100%" >
</translate>

</set>

请帮忙!

提前致谢。

最佳答案

Android 文档解释,对于 setCustomAnimations(int enter, int exit)

These animations will not be played when popping the back stack.

所以,你必须使用the longer form ,它具有用于 popEnterpopExit 的附加参数:

transaction.setCustomAnimations(R.anim.slide_in_right, 
R.anim.slide_out_right,
R.anim.slide_in_left,
R.anim.slide_out_left);

为了让它看起来正确,您可能需要定义 slide_in_leftslide_out_left,但这取决于您的目的...

关于android - 如何使用支持库为屏幕内外的 android fragment 设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25871982/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com