目前,我有一个包含4个片段的选项卡布局设置。我有一个片段,最初是在片段之间切换时出现重复的id错误。我设法通过在下面应用以下代码解决了该问题,但是现在我在切换时收到尚未创建内容 View 的消息。

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;
}

}

最佳答案

onCreateView()永远不要引用静态View对象。循环浏览应用程序时,Android将拆除并重建片段的 View 。因此,您应该始终在onCreateView内部扩大一个新 View 。现在,您的应用程序将尝试将 View 重用于多个片段。

像这样:

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;
    }
}

基本上,删除对片段的 View 引用的静态分配。

10-08 18:39