我想要实现的效果是将输入(新)片段覆盖在退出(旧)片段之上, 但是当我用新片段替换旧片段时,旧片段就会消失,新片段会向上滑动容器,这是可见的(容器)。
我不想为旧片段制作动画,只是保留旧片段,当它可见时,将新片段向上滑动。
以下是我的代码:
// First time adding fragment i.e. "oldFragemnt"
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.content_frame, oldFragment, "oldFragemnt");
ft.addToBackStack(null);
ft.commit();
// while adding "newFragemnt"
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.setCustomAnimations(R.anim.new_slide_in_up,0,0,R.anim.new_slide_out_down);
ft.replace(R.id.content_frame, newFragment, "newFragemnt");
ft.addToBackStack(null);
ft.commit();
指导我出错的地方。当新片段向上滑动时,我的旧片段正在消失。
答案 0 :(得分:1)
您可以尝试使用add()替换replace()以获得所需的效果。希望这会对你有所帮助。
答案 1 :(得分:0)
新片段应该有这样的输入动画(你可能已经在做了): 的 enter.xml 强>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false" >
<translate
android:duration="400"
android:fromXDelta="90%"
android:fromYDelta="0%"
android:toXDelta="0%"
android:toYDelta="0%"
android:zAdjustment="top" />
旧片段应该保持在同一个地方。 的 hold.xml 强>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false" >
<translate
android:duration="400"
android:zAdjustment="bottom" />