目前我有一个带有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;
}
}
答案 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;
}
}
基本上,删除片段视图参考的静态分配。