1

我正在创建一个带有片段的“动态”用户界面,与 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 吗?我必须在运行时添加片段吗?值得注意的是我正在使用支持库

4

1 回答 1

3
The Android Support Library also now supports nested fragments, so you
can implement nested fragment designs on Android 1.6 and higher.

Note: You cannot inflate a layout into a fragment when that layout includes a 
<fragment>. Nested fragments are only supported when added to a fragment dynamically.

正如这里所说的http://developer.android.com/about/versions/android-4.2.html#NestedFragments

于 2014-03-08T13:02:17.127 回答