在片段中嵌套片段时出现InflateException错误

时间:2014-04-17 15:07:56

标签: android android-fragments inflate-exception android-nested-fragment

我有Fragment,其中包含另外两个Fragment,即ListFragment和常规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

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

logcat的:

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

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

1 个答案:

答案 0 :(得分: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;
}
}