片段隐藏动画未播放。

9
我将尝试使用滑动动画切换我的片段。
使用以下代码:
```java ```
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时才能得到它,但那时我只是用一个相同的新片段交换了一个旧片段,而我想要隐藏/删除/分离/无论如何都需要使其消失并播放退出动画。
编辑:我尝试了隐藏、删除和分离。无论我做什么,动画都不会播放。它只在添加、显示和替换时播放。
编辑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%" />
2个回答

9

8

只是想知道,这个错误(以及解决方案)在2012年5月29日就已经被发现了。为什么现在还没有修复? - Prizoff
4
这是 Android 风格。一些问题多年来都没有得到解决。 - Artem Zelinskiy
1
天啊,它还没有修好! - Jacek Kwiecień
1
已经修复了!只需使用支持库的18版或更高版本即可。https://github.com/android/platform_frameworks_support/commit/495efcad8c8865e3e6f14e4ea3d79cfb1d2410f9 - Alexandre
在支持库的Rev22版本中,这个问题仍然存在。 - Kurovsky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接