0

我有一个Fragment,其中包含另外两个Fragments,即 aListFragment和一个常规Fragment。当我给父级充气时,Fragment我收到一个InflateException运行时错误。

这是由于我的 XML 布局代码中的 #11 引用了这个:

<fragment
    android:id="@+id/fragment1"
    android:name="com.nanospark.TMS.fragment_profile_list"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/new_profile_button" />

请记住,上面的这个 XML 指的是一个嵌套 Fragment的.

Android 中是否支持嵌套Fragmentsa 功能?是否有任何替代方案或修复此问题?

日志猫:

04-17 15:00:58.198: E/AndroidRuntime(1400): FATAL EXCEPTION: main
04-17 15:00:58.198: E/AndroidRuntime(1400): android.view.InflateException: Binary XML file line #11: Error inflating class fragment

编辑 1:据我发现,它受支持 http://developer.android.com/about/versions/android-4.2.html#NestedFragments

但是我找不到任何嵌套片段和用它们填充父片段的好例子。

4

1 回答 1

2

您可以将其添加到您的片段代码中:

public class YourFragment extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.your_fragment_layout, null);

    if (getChildFragmentManager().findFragmentByTag("main") == null)
    {
        if (getActivity() == null)
            return null;
        FragmentTransaction ft = getChildFragmentManager().beginTransaction();
        NewsMainFragment nf = (YourNested) YourNestedFragementClass.instantiate(getActivity(), YourNestedFragementClass.class.getName(),savedInstanceState);
        ft.add(R.id.fragment_container, nf,"main");
        ft.commit();
    }
    return v;
}
}
于 2014-04-17T15:27:33.377 回答