gpt4 book ai didi

android - 应用启动时预加载 fragment

转载 作者:行者123 更新时间:2023-11-30 02:09:57 27 4
gpt4 key购买 nike

我正在使用带有抽屉导航菜单的应用程序,我希望在应用程序启动时创建所有 fragment ,因为一些 fragment 从网络服务获取数据,我不希望用户拥有等待所有数据在进入屏幕时立即加载。要解决此问题,我想一次创建所有 fragment ,然后隐藏它们,然后再显示正确的 fragment 。

  private void initFragments() {
FragmentManager fManager = getFragmentManager();
FragmentTransaction fTransaction = fManager.beginTransaction();
for (int i = 0; i < MAIN_FRAGMENTS; i++) {
fTransaction.add(R.id.frame_container, fragmentArray[i], fragmentTags[i]);
}
fTransaction.commit();
fManager.executePendingTransactions();
}
private void hideFragments(){
FragmentManager fManager = getFragmentManager();
FragmentTransaction fTransaction = fManager.beginTransaction();
for (int i = 0; i < MAIN_FRAGMENTS; i++) {
fTransaction.hide(fManager.findFragmentByTag(fragmentTags[i]));
}
fTransaction.commit();
fManager.executePendingTransactions();
}

我解决这个问题的方法是创建所有 fragment ,然后通过调用隐藏它们

initFragments()
hideFragments()

但是,我注意到当我在模拟器上运行它时,在某些设备上它会正确地只显示一个 fragment ,其余的 fragment 被添加但隐藏了。但在其他一些设备上,它会显示所有 fragment 相互重叠,导致丑陋的困惑。此外,当我在平板电脑等横向设备上使用该应用程序时, fragment 也会相互重叠,因为我已将应用程序强制设置为仅纵向模式。关于解决此问题的最佳方法有什么想法吗?

最佳答案

你有任何错误吗?

我怀疑某些设备/版本可能不支持 findFragmentByTag() 方法或 hide() 方法。尝试调查一下。

关于您在平板电脑上的重叠问题,试试这个:https://stackoverflow.com/a/11086185/2929693

关于android - 应用启动时预加载 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30239637/

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