Jon O 的回答把我推向了正确的方向。事实上,在纵向上,XML 只显示了列表片段:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<fragment class="com.dixon.blah.Events$EventsListFragment"
android:id="@+id/titles"
android:layout_width="match_parent" android:layout_height="match_parent" />
</FrameLayout>
如果我将其更改为详细信息片段,但是我会得到一个 FC,因为尚未选择列表中的任何项目。我通过将下面的代码放入我的 FragmentActivity onCreate 方法解决了这个问题:
if(detailsFrame != null) {
Intent intent = new Intent();
intent.setClass(this, EventDetailsActivity.class);
intent.putExtra("index", mCurCheckPosition);
intent.putExtra("id", mSelectedId);
startActivity(intent);
}
一旦选择了列表中的项目, detailsFrame 变量将指向片段的视图。因此,从细节片段中的纵向旋转到横向并再次返回,视图保持并正确显示。