我正在创建一个带有片段的“动态”用户界面,与 Android 的构建动态用户界面指南中的示例非常相似。不同之处在于我将两个片段包装在一个片段而不是活动中。
右窗格的布局大布局文件看起来像
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragment_message_multi_pane"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/some_color"
android:baselineAligned="false"
android:orientation="horizontal" >
<fragment
android:id="@+id/left_pane"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:name="com.rperryng.basicfragments.leftpane"
<fragment
android:id="@+id/right_pane"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2"
android:name="com.rperryng.basicfragments.rightpane"
</LinearLayout>
左窗格的 onAttach() 方法尝试调用mListener = (someInterface) getParentFragment()
. 但是,当布局因大布局而膨胀时(即在平板电脑上),getParentFragment()
调用为空(通过 if 语句和确认日志消息确认)。是什么赋予了?这是因为系统在直接从布局或其他东西膨胀时没有使用 childFragmentManager 吗?我必须在运行时添加片段吗?值得注意的是我正在使用支持库