Android内容视图尚未创建片段

时间:2016-05-11 20:33:01

标签: android android-fragments error-handling compiler-errors fragment

目前我有一个带有4个片段的标签布局设置。我有一个片段,最初我得到一个重复的id错误,当在片段之间切换时发生。我设法通过应用下面的代码解决了这个问题,但现在我在切换时得到了一个尚未创建的内容视图消息。

public class contactus2 extends Fragment {

private static View view;

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    if (view != null) {
        ViewGroup parent = (ViewGroup) view.getParent();
        if (parent != null)
            parent.removeView(view);
    }
    try {
        view = inflater.inflate(R.layout.contactus2, container, false);
    } catch (InflateException e) {
        Log.i("Inflate", "View Hidden");

    }
    return view;
}

}

1 个答案:

答案 0 :(得分:0)

onCreateView()永远不应该引用静态View对象。在循环应用程序时,Android将拆除并重建片段的视图。因此,您应该始终在onCreateView中膨胀新视图。现在你的方式,你的应用程序将尝试重用多个片段的视图。

这样的事情:

public class contactus2 extends Fragment {

    private View rootView;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        rootView = inflater.inflate(R.layout.contactus2, container, false);
        return rootView;
    }
}

基本上,删除片段视图参考的静态分配。