2013-07-23 43 views
0

請各位看看下面的圖像多個片段問題

enter image description here

在左側面板有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)。

那麼,首先這種方法是否正確?如果不是,請提出正確的方法。

回答

0

終於得到解決我的問題。對於相同的here有一個很好的示例。另外,它討論了here