3

我几乎没有通过活动的片段管理器替换的主要片段。所有这些主要片段内部都有嵌套片段,并且使用子片段管理器进行管理。

从 backstack 导航回来时,我需要保留嵌套片段的小部件的屏幕状态(如滚动位置、EditText 值...)。我在其他一些stackoverflow帖子上发现我应该重用创建的视图来实现这一点。

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 在它的指南中只提供了片段的简单示例。

4

0 回答 0