使用母页和子页配合展示内容;母页和子页都有自己的activity。
母页是含有frameLayout控件的页面。子页通过配置,在frameLayout控件中显示;frameLayout本身没有任何内容。
-------------------------------------------------------------------------------------------------------------------------------------------------------------
母页内容(test_activity_fragment.xml)
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/fragmentContainer" > </FrameLayout>
在母页的activity中对FrameLayout控件配置子页。子页就是标准的Android XML File。
如何对FrameLayout控件配置子页
FragmentManager对象,母页activity管理所有的子页。
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.test_activity_fragment); FragmentManager fm = getFragmentManager(); //找到含有fragment的视图,先在FragmentManager中,沒有就創建,并添加到FragmentManager Fragment fragment = fm.findFragmentById(R.id.test1_fragment); if (fragment == null) { fragment = new CrimeFragment();//使用子页的activity fm.beginTransaction().add(R.id.test1_fragment, fragment).commit();//子页给哪个frameLayout显示,在add方法中配置, } }
子页和activity的匹配是onCreateView方法
@Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_crime, container, false); mTitleField.setText(mCrime.getTitle()); return v; }