Clarence Asked:2020-02-06 18:25:02 +0000 UTC2020-02-06 18:25:02 +0000 UTC 2020-02-06 18:25:02 +0000 UTC 在活动中存储片段 772 在带有BottomNavigation的activity中,只有3个菜单项和3个在导航时切换的fragment。对于其中之一,您需要始终存储状态。将所有 3 个片段作为活动字段存储在内存中是否合理,或者每次更改片段时创建一个新对象是否更好? java 1 个回答 Voted Best Answer Shwarz Andrei 2020-02-06T23:10:10Z2020-02-06T23:10:10Z 在这种情况下,最好不要不必要地重新创建片段的对象,即使您有 5 个选项卡。在实践中,碎片可能会很重,那么就需要——释放内存。但是由于系统的特殊性,您应该始终考虑到这种情况,或者只是切换到另一个 Activity()。 以谷歌为例: AddEditTaskFragment addEditTaskFragment = (AddEditTaskFragment) getSupportFragmentManager().findFragmentById(R.id.contentFrame); if (addEditTaskFragment == null) { addEditTaskFragment = mFragment; ActivityUtils.addFragmentToActivity(getSupportFragmentManager(), addEditTaskFragment, R.id.contentFrame); } 当然,它可以写成更有趣的方式,例如这样: if (fragmentUtils.hasFragment(tag)) fragmentUtils.showFragment(tag); else fragmentUtils.addFragment(R.id.frame_fragment_container, lazyFragment.get(), tag);
在这种情况下,最好不要不必要地重新创建片段的对象,即使您有 5 个选项卡。在实践中,碎片可能会很重,那么就需要——释放内存。但是由于系统的特殊性,您应该始终考虑到这种情况,或者只是切换到另一个 Activity()。
以谷歌为例:
当然,它可以写成更有趣的方式,例如这样: