3
我正在处理显示片段的应用程序。一旦用户单击片段上的按钮,该片段将向下滑动80%,显示下面的另一个片段。我遇到的问题是,当我点击按钮片段滑落80%,但屏幕后,只有第二个片段显示重绘。任何帮助?片段滑动动画
我提供了单击按钮时运行的代码。和动画文件
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId())
{
case R.id.button1:
ProfileFragment pro = new ProfileFragment();
((MainActivity) getActivity()).tra =((MainActivity) ()).fragmentManager.beginTransaction();
((MainActivity) getActivity()).mFragmentStack.add(pro.toString());
getActivity()).tra.setCustomAnimations(R.anim.slide_in_top, R.anim.slide_out_bottom);
((MainActivity) getActivity()).tra.replace(R.id.fragment_swap,pro);
((MainActivity) getActivity()).tra.addToBackStack(pro.toString());
((MainActivity) getActivity()).tra.commit();
break;
}
}
Slide_out_bottom:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="900"
android:fromYDelta="0%"
android:toYDelta="80%"
/>
</set>
slide_in_top:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="900"
android:fromYDelta="0%"
android:toYDelta="0%" />
</set>
第一个片段仍然消失 – Samantha
我开始怀疑你是否可以用'replace()'命令完成你正在讨论的'FragmentTransaction'。根据我的理解,替换“Fragments”的动画,然后删除原始片段。在第二个“FrameLayout”的第二个片段上放置一个“FrameLayout”中的第一个片段,然后将整个第一个“FrameLayout”向下动画以显示第二个片段。这种方式,碎片不会被删除。 – SDJMcHattie
阅读[documentation](http://developer.android.com/reference/android/app/FragmentTransaction.html#replace(int,%20android.app.Fragment,%20java.lang.String)),你会看到第一个片段被调用了'.remove()' – SDJMcHattie