【发布时间】:2019-03-19 09:52:52
【问题描述】:
可以在代码中动态添加/替换/删除片段。我一直在我的项目中使用这种方法。
但是,我想知道如果我们不创建新片段并添加或替换当前片段,而是抓住当前片段的句柄并对其进行修改,会有什么不同(主要是在性能方面)。
例如,考虑这个简单的场景,其中片段的唯一目的是显示图像,而我们想要修改该图像:
选项 1)创建我的 Fragment 类的新实例并替换当前显示的片段:
MyFragmentClass fr = new MyFragmentClass();
fr.setImage(1);
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.frame_layout_id, f)
...
选项 2) 只需获取对当前显示片段的引用并对其进行修改:
MyFragmentClass fr = (MyFragmentClass)
fragmentManager.findFragmentById(R.id.frame_layout_id);
fr.setImage(1);
创建一个新的fragment实例并添加它的整个过程是否比调用findFragmentById更高效?
【问题讨论】:
标签: android performance android-fragments