gpt4 book ai didi

android - 退出动画不起作用; FragmentTransaction 自定义动画不适用于隐藏

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:22:58 25 4
gpt4 key购买 nike

我使用显示/隐藏来显示占据屏幕一部分的 fragment 。出于某种原因,当 fragment 显示时 slide_in_left 动画播放,但当 fragment 被隐藏时没有动画, fragment 就消失了。我已经尝试对 exitenter 使用 slide_in_left 动画,但这没有帮助。当将代码跟踪到支持包中时,会创建动画并执行显示它的代码。 (我跟踪了 .hide 调用)

FragmentManager fm = _activity.getSupportFragmentManager();
Fragment fragment = fm.findFragmentById(R.id.my_fragment);
FragmentTransaction ft = fm.beginTransaction();
ft.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_left);
if (fragment.isHidden()) {
ft.show(fragment);
fragment.setUserVisibleHint(true);
} else {
ft.hide(fragment);
}
ft.commit();

以防万一这里是 slide_out_left 动画的 xml

<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0" android:toXDelta="-50%p"
android:duration="@android:integer/config_mediumAnimTime"/>
<alpha android:fromAlpha="1.0" android:toAlpha="0.0"
android:duration="@android:integer/config_mediumAnimTime" />
</set>

编辑:该问题可能与 my_fragment 与包含 webview 的另一个 fragment 共享屏幕宽度这一事实有关。当为 my_fragment 执行 .show 时,它变得可见并在水平线性布局内共享空间(两个 fragment 各自占用多少屏幕宽度由权重参数决定)。

最佳答案

尝试使用setCustomAnimations(int enter, int exit, int popEnter, int popExit)代替setCustomAnimations(int 进入,int 退出)当您将调用 popupbackstack 退出动画时,将不会调用

关于android - 退出动画不起作用; FragmentTransaction 自定义动画不适用于隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13809936/

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