gpt4 book ai didi

android - 可以只用一个实例创建 fragment 吗

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:50:03 25 4
gpt4 key购买 nike

我就想知道, fragment 创建只能有一个实例还是单例?
我也经历了 Google iosched 项目。他们只是创造

Fragment a = new Fragment();

只要他们想...

假设例如:

public static FragmentManager instance;

public static FragmentManager getInstance() {
if (instance == null) {
instance = new FragmentManager();
}
return instance;
}

public TestFragment getTestFragment() {
if (testFragment == null) {
testFragment = new TestFragment ();
}

return testFragment
}
}

我可以到处使用吗FragmentManager.getInstance().getTestFragment() 用于交易?

例如:

getSupportFragmentManager()
.beginTransaction()
.replace(R.id.content_frame, FragmentManager.getInstance().getTestFragment())
.commit();

或者操作系统自动销毁引用或与之相关的一些问题?

最佳答案

当您使用 getSupportFragmentManager().beginTransaction().replace 时,您可以添加第三个参数作为字符串,您可以将其用作标记,因此如果您想恢复以前的 fragment ,您可以可以使用 getSupportFragmentManager().findFragmentByTag(String),这样您就不必创建新 fragment 。

原来是这样

使用findFragmentByTag(String) 检查 fragment 是否存在,如果不存在,创建一个新 fragment 并调用getSupportFragmentManager().beginTransaction() .replace(R.id.content_frame, myFragment,myTag).commit(); 其中 myTag 是您将在 findFragmentByTag 中使用的字符串。这样您就不会为每种类型创建一个以上的 fragment 。

我希望它有一些意义:)

更多信息请查看thisthis

关于android - 可以只用一个实例创建 fragment 吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17154341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com