我有两个片段。
在第一个片段中,我有一个容器静态(LinearLayout)到片段视图。在这个容器中,我做了几个观点的膨胀。
我改为第二个片段,但当我回到第一个片段时,膨胀的视图消失了。
如何保存容器的状态?有人可以举个例子吗? 谢谢你的帮助和关注
答案 0 :(得分:0)
问题出在saveinstance上。片段保存属于片段的视图的状态,但是通胀结果的另一个视图消失。
我不知道如何保存容器内的状态(当更改片段时),多次改变(dinamic)
答案 1 :(得分:0)
onCreateView,并重新创建片段。 一种解决方案是将片段状态保存在onSaveInstanceState中并在onCreateView中重新加载:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
..
if (savedInstanceState != null) {
// reload state
}
..
}
public void onSaveInstanceState (Bundle outState) {
// save dynamic state in outState
}
编辑:
如果您想保留实际视图,我发现这可行:
private View mLayout;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (mLayout == null) {
// this is the first time onCreateView has been called
mLayout = inflater.inflate(..);
} else {
// remove previous parent
ViewParent parent = mLayout.getParent();
if (parent != null)
((ViewGroup) parent).removeView(mLayout);
}
return mLayout;
}