gpt4 book ai didi

android - fragment 隐藏动画不播放

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:13:48 27 4
gpt4 key购买 nike

我正在尝试用幻灯片动画切换我的 fragment

使用这段代码:

FragmentManager manager = getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
SearchPanelFragment existingFragment = (SearchPanelFragment) manager.findFragmentByTag(SearchPanelFragment.FRAGMENT_NAME);
transaction.setCustomAnimations(R.xml.slide_down_search_panel, R.xml.slide_up_search_panel);
if (existingFragment != null) {
if (existingFragment.isVisible())
transaction.remove(existingFragment);
} else {
transaction.add(R.id.top_panel_fragment, new SearchPanelFragment(this), SearchPanelFragment.FRAGMENT_NAME);
}

transaction.commit();

到目前为止,我只在 transaction.add 上获得了进入动画 什么时候播放退出动画?我只能在使用 transaction.replace 时得到它,但后来我只是用相同的新 fragment 交换一个旧 fragment ,我想要的是隐藏/删除/分离/任何必要的东西让它消失播放退出动画

编辑:我试过隐藏、删除和分离。无论我做什么,动画都不会播放。它仅在添加、显示和替换时播放

编辑 2:第二个动画可能有问题。请看一下它们。第一个向下滑动,似乎工作正常。

向下滑动

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

向上滑动

<translate
android:duration="700"
android:fromXDelta="0%"
android:fromYDelta="0%"
android:toXDelta="0%"
android:toYDelta="-100%" />

最佳答案

您实际上使用了错误的功能。

根据 setCustomAnimations(int enter, int exit) 的文档:

Set specific animation resources to run for the fragments that are entering and exiting in this transaction. These animations will not be played when popping the back stack.

相反,您应该使用 setCustomAnimations (int enter, int exit, int popEnter, int popExit) :

Set specific animation resources to run for the fragments that are entering and exiting in this transaction. The popEnter and popExit animations will be played for enter/exit operations specifically when popping the back stack.

关于android - fragment 隐藏动画不播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13933749/

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