我有很少的主要片段被活动的片段管理器取代。所有这些主要片段都有嵌套片段,这些片段使用子片段管理器进行管理。
当从backstack导航回来时,我需要保留嵌套片段的小部件的屏幕状态(如滚动位置,EditText值,...)。我发现在其他一些stackoverflow帖子上说我应该重用创建的Views来实现它。
View view = null;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (view == null) {
view = inflater.inflate(R.layout.fragment_layout, container, false);
// other initializations here
} else {
((ViewGroup) view.getParent()).removeView(view);
}
return view;
}
对于更大的应用程序,我觉得不是最好的方法而可能是内存饥渴。我不知道正确的解决方案,因为Android指南只提供了guide中片段的简单示例。