0
請各位看看下面的圖像多個片段問題
在左側面板有2個類別命名的機票和審計,每一個後退按鈕。 門票有2 ListView's
。如果我點擊第一個Listview
中的任何項目,它將打開第二個Listview
。 同時,如果我再次點擊,我會再看到第一個Listview
。再次回來,將退出應用程序。
這種情況對於審計是一樣的。
對於這種情況,我採取了4 。
xml文件
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
android:id="@+id/framelayout_fragment1_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.7">
</FrameLayout>
<fragment
android:id="@+id/detailFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.mobinius.fragments.DetailFragment"
android:layout_weight="0.3"
/>
有一個翻轉動畫時I和票證之間切換到審覈反之亦然。
private void flipFragments(String tag) {
System.out.println(" tag in flipFragments : "+tag);
Fragment fragment = getFragmentManager().findFragmentByTag(tag);
System.out.println(" fragment in flipFragments : "+fragment);
if (fragment != null)
{
getFragmentManager().popBackStack(tag, FragmentManager.POP_BACK_STACK_INCLUSIVE);
return;
}
getFragmentManager()
.beginTransaction()
.setCustomAnimations(
R.animator.card_flip_right_in, R.animator.card_flip_right_out,
R.animator.card_flip_left_in, R.animator.card_flip_left_out)
.replace(R.id.framelayout_fragment1_container, new AuditGroupFragment(), tag)
.addToBackStack(tag)
.commit();
}
當我按下返回鍵,可從後面堆
public void onBack(String tag) {
FragmentManager fragmentManager = getFragmentManager();
Fragment fragment = fragmentManager.findFragmentByTag(tag);
if(fragment != null)
fragmentManager.popBackStack(tag, FragmentManager.POP_BACK_STACK_INCLUSIVE);
else
finish();
}
更換片段當我點擊任何列表項的,與所需的
public void onListItemClick(String tag, Fragment fragmentToAdd) {
getFragmentManager()
.beginTransaction()
.replace(R.id.framelayout_fragment1_container, fragmentToAdd, tag)
.addToBackStack(tag)
.commit();
}
門票naivigation替換當前片段,這兩個片段都很完美。
問題:
默認情況下,票務片段將被添加到活動。現在,如果我切換到審計,選擇1列表項,然後切換到票,它需要一些時間加載,當我再次切換回審計,我不能看到第二個ListView(它應該已經存儲在後面的堆棧)。它從開始加載(顯示第一個ListView)。
那麼,首先這種方法是否正確?如果不是,請提出正確的方法。