[英]Best practice with android fragments?
目前,我正在調用並構建如下片段:
if (getSupportFragmentManager().findFragmentById(R.id.fragment_list) == null) {
list = new MyListFragment();
getSupportFragmentManager().beginTransaction().add(R.id.fragment_list, list).commit();
}
但是我不知道這是否是所謂的最佳實踐,因為在我看來這是很多樣板代碼。 有更好的方法嗎?
使用XML布局和Fragment類。 在這里,我創建了一個包含2個片段的布局。 該類使布局fragment_actionbarcompat.xml
膨脹(該代碼未在此處顯示,但它是一個基本的布局文件)。 然后,為包含兩個片段的活動創建一個布局文件。
ActionBarCompatFragment類重寫onCreateView方法來擴大其布局。 它將以布局方式注入片段標簽。
通常情況下,您不只是添加一個普通的ListFragment
,還擴展ListFragment
並將自定義代碼添加到其中。 這是一種更好地支持“模型-視圖-控制器”等奇特模式的方法。 片段是隔離的隔離區,因此您可以根據需要在活動之間重用它們。 在大多數情況下,您的類將持有加載片段所需數據的邏輯。
ActionBarCompatFragment.java
@Override
public final View onCreateView(LayoutInflater inflater, ViewGroup root, Bundle savedInstanceState) {
final int layoutId = R.layout.fragment_actionbarcompat;
return inflater.inflate(layoutId, root, false);
}
文件:activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<fragment
android:id="@+id/ActionBarCompatFragment"
android:layout_width="@dimen/ActionBarSize"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
class="com.packagename.app.ActionBarCompatFragment" >
<!-- Preview: layout=@layout/fragment_actionbarcompat -->
</fragment>
<fragment
android:id="@+id/ComposerFragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_toRightOf="@id/ActionBarCompatFragment"
class="com.packagename.app.ComposerFragment" >
<!-- Preview: layout=@layout/fragment_composer -->
</fragment>
</RelativeLayout>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.