【问题标题】:GoogleMap Fragment issues谷歌地图片段问题
【发布时间】:2011-10-13 15:54:01
【问题描述】:

我正在转换我编写的应用程序,其中一部分是 GoogleMap 组件,我试图将其放入片段中,但遇到了问题。

我首先查看了android-support-v4-googlemaps,并且对每个 FragmentActivity 都实现 Maps 感到不高兴,但是遵循这些 instructions on how to make a MapFragmentActivity 我遇到了问题,因为现在地图会显示,但在旋转时我会得到“在 MapActivity 错误中只允许有一个 MapView” - 在 this answer 在代码中注册 MapView 之后,在片段中,我得到了我只能在 MapActivity 中注册 MapView 的错误。

所以我现在已经实现了android-support-v4-googlemaps,但我仍然收到旋转错误。

我走到了死胡同,我有点沮丧 - 有人知道如何解决这个问题吗?

【问题讨论】:

    标签: android google-maps android-fragments


    【解决方案1】:

    android-support-v4-googlemaps 库也有同样的问题。仔细阅读片段的工作原理后,解决方案非常简单。基本上,框架在旋转时保存片段的状态。因此,您需要做的是在没有保存状态的情况下(即在您的活动的第一次运行时)实例化您的片段。

    这是一个对我有用的示例代码:

    public class MyMapFragmentActivity extends FragmentActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_map);
    
            //... init views, do stuff ...
    
            // Only instantiate fragments at first run
            if (savedInstancestate == null) {
                // Add map & list fragments
                FragmentManager fm = getSupportFragmentManager();
                MapFragment mapFragment = new MapFragment();
                AnotherFragment another = new AnotherFragment();
                FragmentTransaction ft = fm.beginTransaction();
                ft.add(R.id.fragment_map, mapFragment, "fragment_map");
                ft.add(R.id.fragment_another, anotherFragment, "fragment_another");
                ft.commit();
            }
    
            //... do more stuff ...
        }
    
    }
    

    在这种情况下,我什至没有覆盖onSavedInstanceState(),因为我没有任何东西要保存。请记住,此解决方案使用 FragmentMapActivity library hack。

    我希望这会有所帮助。

    【讨论】:

    • 为我工作。无论如何,这确实是处理旋转的最佳方式。
    【解决方案2】:

    Google 发布了Map API Version 2。这会给你一个 MapFragment 和一个 SupportMapFragment。这应该可以解决您之前遇到的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-02
      • 1970-01-01
      • 1970-01-01
      • 2017-08-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多