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