我有一个片段,我打算在打开时向左滑动,当我们关闭它时向右滑动。 show部分工作正常,但是当我们关闭它时,如果我使用hide()但是我想删除片段以便在配置更改等时不显示它,但是当remove()时,用于hide的相同动画不起作用叫做。请参阅下面的代码。
此代码的作用意味着它显示面板转到右侧动画
Fragment fragment = getFragmentManager().findFragmentByTag(Tags.PANEL_FRAGMENT_TAG.name());
if (fragment != null) {
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.setCustomAnimations(R.animator.slide_in_right, R.animator.slide_out_right);
transaction.hide(fragment);
transaction.commit();
}
这段代码不起作用。有什么指针吗?如何删除片段和动画仍然有效..
Fragment fragment = getFragmentManager().findFragmentByTag(Tags.PANEL_FRAGMENT_TAG.name());
if (fragment != null) {
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.setCustomAnimations(R.animator.slide_in_right, R.animator.slide_out_right);
**transaction.remove(fragment);**
transaction.commit();
}
答案 0 :(得分:1)
我在stackoverflow的另一篇文章中找到了理由
这是原帖 How to animate fragment removal
推理:
"退出视图在输入视图的画布上设置动画,如果是 没有进入画布,没有动画画布。
要显示动画,我必须始终使用替换并使用输入 与那些人相同大小的片段。动画结束后 完成后我将新片段的视图设置为已消失。"