2012-07-02 44 views
0

我使用呼叫片段寬度從另一個片段

LinearLayout formLayout = (LinearLayout)findViewById(R.id.mainLayout); 
formLayout.removeAllViews(); 

FragmentTransaction fragmentTransaction =  fragmentManager.beginTransaction(); 
PatientSearch fragment = new PatientSearch(maincontrolActivity.this); 

fragmentTransaction.add(R.id.mainLayout,fragment, "MY_FRAG"); 
fragmentTransaction.commit(); 

PatientSearch調用Fragment佈局我有按鈕,我希望當點擊加載另一個Fragment但老Fragment的boundry內。

任何想法如何做到這一點?

回答

2

您不應在Fragment內撥打Fragment(或執行FragmentTransactions)。 Fragment不應該與其他Fragment直接互動,因爲這將違背其整個目的(它們的目的是爲了重用而設計,如文檔中所述)。

你應該做的是在Activity中創建事件回調。您的Fragment應該撥打Activity,然後Activity應該將呼叫轉到其他Fragment。這可能聽起來像是額外的工作,但良好的設計可以走很長的路,讓您的生活更輕鬆。

+0

你可以給出更多的示例代碼 – AMH

+0

這部分文檔介紹了這個過程。示例代碼實現了多窗格佈局,左側窗格爲列表視圖,右側窗格爲詳細信息視圖。每次按下左窗格中的列表項時,詳細信息片段都會更改。這是通過對活動的回調事件完成的,如下所述:http://developer.android.com/guide/components/fragments.html#EventCallbacks –

+0

再次讀取*整個*文檔,只是爲了完全理解碎片和他們的目的,也將極大地幫助你理解 –