gpt4 book ai didi

android - 如何在使用 AsyncTask 更新两个 fragment 时在 android 中的 map fragment 和列表 fragment 之间交换

转载 作者:行者123 更新时间:2023-11-29 00:32:10 24 4
gpt4 key购买 nike

我在使用 MapView 时执行此操作的策略非常简单,但我现在正在过渡到 Android Maps v2 并且必须使用 MapFragment。我的场景涉及获取事件列表,然后我需要在后台对这些事件进行地理解码以获取它们的纬度和经度以计算与用户的距离并将其放置在 map 上。我有一个操作栏按钮,允许用户在列表和 map fragment 之间切换,但我的问题是如何将这两个 fragment 保存在内存中并避免它们的生命周期,以便我可以在更新列表适配器时不断地向 map fragment 添加标记在列表 fragment 中?

目前我用 FragmentTransaction.replace 替换了每个 Fragment 的 FrameLayout,但这会导致另一个被破坏,而我只是想隐藏它(在我简单地将 MapView 可见性设置为 View.GONE 之前)。

编辑

我的代码最终是:

@Override
public void swapFragments() {
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction transaction = fm.beginTransaction();
if (listFragment.isVisible()) {
transaction.hide(listFragment);
if (mapFragment.isAdded()) {
transaction.show(mapFragment);
} else {
transaction.add(R.id.root, mapFragment);
}
} else {
transaction.hide(mapFragment);
transaction.show(listFragment);
}
transaction.commit();
}

最佳答案

我一直在研究类似的东西。我所做的是在我的主要 FragmentActivityonCreate() 部分创建两个 fragment ——然后根据 onclick Action ,我显示和隐藏适当的 fragment 。我通过在提交隐藏 listFragment 之前添加到返回堆栈来补充这一点,这样当用户按下返回时,他们将再次获得列表而不是之前的 Activity 。

但是,目前,出于某种原因,我无法让 GoogleMap 在我的 MapFragment 中不为 null。

我解决了这个问题——你可以在这里找到类似的答案 MapFragment Error - CameraUpdateFactory is not initialized

关于android - 如何在使用 AsyncTask 更新两个 fragment 时在 android 中的 map fragment 和列表 fragment 之间交换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14825708/

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