2012-06-08 29 views
1

我有一個具有兩種視圖模式(編輯模式和只讀模式)的片段。用戶可以通過在兩種模式下可用的微調器中選擇的狀態之間切換來切換模式。在onCreateView運行後替換片段視圖

創建片段後,我根據管理的對象的狀態選擇只讀或編輯佈局以進行膨脹。一旦用戶選擇新的狀態,模式可以從只讀模式切換到編輯模式。發生這種情況時,我需要用只讀視圖替換編輯視圖。

如何替換片段中的現有視圖?在一個活動中,我會用我想要使用的佈局調用setContentView。

我已經試過:

  • 無效的視圖,但onCreateView不再調用。
  • 使用片段事務替換片段,但不會更改佈局。

注意:這是針對Android 4.0的,我無法使用兼容性庫。

+0

你爲什麼不使用兩個片段?似乎會更容易。只需使用.replace交換它們即可。 – Barak

回答

1

如果你想保持一個片段內的一切:

我不能完全確定你的佈局究竟如何看,但我想我只是把兩種佈局在ViewFlipper並改變它的顯示子視選擇了什麼。

樣品片段佈局

<LinearLayout android:orientation="vertical" ..> 
    <Spinner ../> 

    <ViewFlipper android:id="@+id/flipper" ..> 
     <ReadOnlyLayout /> 
     <EditLayout /> 
    </ViewFlipper> 

</LinearLayout> 

然後,你可以簡單地使用setDisplayedChild(),這取決於你有哪些狀態下,兩個佈局之間進行切換。

ViewFlipper vf = (ViewFlipper) getView().findViewById(R.id.flipper); 
vf.setDisplayedChild(1); 

注意,子索引從0開始

兩個獨立的片段也可用於(如由巴拉建議的)。我想這只是一個設計選擇。

+0

ViewFlipper正是我所需要的...謝謝。 – dmck

相關問題