我的 Android 应用程序有一个ActionBar变化,它Fragment占据了一定的FrameLayout. 我正在尝试onSaveInstanceState在选项卡更改时保存 Fragment 的状态,以便可以在onCreateView.
问题是,onSaveInstanceState永远不会被调用。' FragmentsonDestroyView和onCreateView方法被调用,但Bundle提供的 toonCreateView保持为空。
有人可以向我解释何时onSaveInstanceState实际调用它,我如何确保在切换选项卡时调用它,或者在Fragment分离和重新连接时保存和恢复状态的最佳实践?
分段:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.event_log, container, false);
// Retrieve saved state
if (savedInstanceState != null){
System.out.println("log retrieved");
} else {
System.out.println("log null");
}
return view;
}
@Override
public void onSaveInstanceState(Bundle outState) {
System.out.println("log saved");
super.onSaveInstanceState(outState);
// more code
}
活动:
/**
* Detach the current Fragment, because another one is being attached.
*/
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
if (tab.getText().equals(getString(R.string.tab_events))){
if (frEventLog != null) {
ft.detach(frEventLog);
}
}