动画时如何在退出片段上方显示输入片段。

时间:2015-01-09 06:37:41

标签: android android-fragments android-animation fragmenttransaction

我想要实现的效果是将输入(新)片段覆盖在退出(旧)片段之上, 但是当我用新片段替换旧片段时,旧片段就会消失,新片段会向上滑动容器,这是可见的(容器)。

我不想为旧片段制作动画,只是保留旧片段,当它可见时,将新片段向上滑动。

以下是我的代码:

// 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();

指导我出错的地方。当新片段向上滑动时,我的旧片段正在消失。

2 个答案:

答案 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" />