我有这样的布局:
frame_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/items"
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>
接下来,在 FragmentActivity 我做:
setContentView(R.layout.fragment_layout);
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
String tag = MyListFragment.class.getName();
MyListFragment fragment = (MyListFragment)
getSupportFragmentManager().findFragmentByTag(tag);
if (fragment == null) {
fragment = new MyListFragment();
ft.add(R.id.items, fragment, tag);
}
else {
ft.replace(R.id.items, fragment, tag);
}
ft.addToBackStack(null);
ft.commit();
当我调用此代码一次时,片段完美显示!但是,当它调用两次时,我看不到任何内容!经过一番调查,我发现问题是由这个引起的:
setContentView(R.layout.fragment_layout);
例如,当它被调用一次时,片段内容就完美地显示出来了!但是我需要调用setContentView
很多次才能显示另一个片段。
哪里错了?
PS 可以MyListFragment
硬编码成 XML,但这不适合我,因为我需要用其他片段替换布局内容。