2016-01-13 23 views
0

頂部後當我嘗試用一​​個片段替換一個活動,我的應用程序最終呈現在活動的頂部的片段:與片段更換活動只是覆蓋在原

<!-- activity.xml --> 
<CoordinatorLayout 
    android:id="@+id/coord_layout"> 
... stuff ... 
</CoordinatorLayout> 

這裏的片段:

<!-- fragment.xml --> 
<LinearLayout 
    android:id="@+id/frag_layout"> 
... stuff ... 
</LinearLayout> 

這裏是我的主類:

private void selectDrawerItem(MenuItem menuItem) { 
    Fragment f = fragment.newInstance(); 

    FragmentManager fragManager = getSupportFragmentManager(); 
    fragManager.beginTransaction().replace(R.id.coord_layout, f).commit(); 
} 

我在做什麼錯?

回答

0

FragmentTransaction僅處理(動態創建)Fragment s。您用於容納Fragment的容器ViewGroup內的任何View都不受replace()的影響。也就是說,Fragment只會被添加到它們之上。如果你想完全取代現有的佈局,你應該有一個空ViewGroup替換您activity.xmlCoordinatorLayout - 通常是FrameLayout - 並使用CoordinatorLayout作爲佈局的另一個Fragment,你可以在啓動時加載,然後可以換出據此與您的FragmentTransaction