我有一个片段,有几个视图。其中两个是自定义的:我们称之为FrameLayoutA
和FrameLayoutB
。问题是FrameLayoutB
在我返回片段时没有保存它的状态。
onSaveInstanceState
/ {{1}没有调用/重载的onRestoreInstanceState
/ setRetainInstance
/ onRetainNonConfigurationInstance
/ getLastNonConfigurationInstance
/ FrameLayoutA
方法}类和片段的类。
找不到保存一个视图状态而另一个视图保存状态的原因。有任何想法吗?我错过了什么吗?
更新
在FrameLayoutB
停止调试,显然我的恢复值在onCreateView()
- > inflater
- > mChildFragment
。 mSavedViewState
的类型为inflater
。仍在寻找答案,为什么有些观点被保存,而其他观点却没有。
更新
所以有两个我的自定义视图,它们在其中扩展了相同的布局。布局具有声明了ID的EditTexts。因此org.holoeverywhere.LayoutInflater
正在从第二个视图中的值恢复两个视图的值。因此,当我回到片段时,我的两个自定义视图都具有相同的值。
答案 0 :(得分:0)
如果你想改变片段,你可以这样做:
getSupportFragmentManager().beginTransaction()
.addToBackStack(Fragment.class.getName())
.**add**(R.id.content_fragment, fragment, Fragment.class.getName())
.commit();
致电"添加"而不是"取代"当你回到原始片段时,片段的状态就可以了。
这项工作对我来说,希望对它有所帮助:)