第一:
在MainActivity
佈局可以嵌入多個片段佈局。您甚至可以在任何其他活動中重複使用這些片段佈局。啊,好功能!
二:
如果我想將現有的代碼中使用片段,有什麼 主要變化?
要你只需要對現有的代碼中使用片段,
片段將使用<fragment>
元素的佈局被添加到活動中或可以動態增加。
要檢查是否片段已經是佈局的一部分,你可以使用FragmentManager類 -
DetailFragment fragment = (DetailFragment) getFragmentManager().
findFragmentById(R.id.detail_frag);
if (fragment==null || ! fragment.isInLayout()) {
// start new Activity
}
else {
fragment.update(...);
}
如果一個片段是在XML佈局文件中定義的,android:name
屬性指向對應的類。
要動態地將碎片添加到現有佈局,您通常需要在添加碎片的XML佈局文件中定義一個容器。
爲此,您可以使用例如FrameLayout元素。
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.your_placehodler, new YourFragment());
ft.commit();
新的Fragment將替換之前添加到容器中的現有片段。
如果您想將交易添加到Android的backstack
,請使用addToBackStack()
方法。
這會將操作添加到活動的歷史堆棧中,即,這將允許通過後退按鈕還原碎片更改。
三:
如果我想有一個以上的片斷,我一定要加個班 擴展片段,因爲我要創建的每個片段?
要定義一個新片段你要麼擴展android.app.Fragment類或其子類之一, 例如,ListFragment
,DialogFragment
,PreferenceFragment
WebViewFragment
或。
第四:擴展片段返回一個視圖類的
onCreateView,是 正確創建裏面一個視圖,並返回它的主要活動 將其添加到它的佈局? ?
無需將其返回到主活動以將其添加到其佈局。只需在Main Activity
之後使用FragmentTransaction's replace
,然後按commit
即可完成。
MainActivity有其自己的佈局和片段,所以當我添加片段時,屏幕上顯示的是什麼?片段的佈局或MainActivity的佈局? – Alaa
@Alaa - 如果在Activity中添加片段(包含某些視圖),則屏幕上將顯示片段佈局。 – Manish