【问题标题】:MapFragment in tabbed activity getting null value选项卡式活动中的 MapFragment 获取空值
【发布时间】:2017-07-31 09:15:01
【问题描述】:

我想在选项卡式活动中加载地图片段而不显示它,以便以后可以立即启动地图片段。
我试过使用getFragmentManager().findFragmentbyId()getSupportFragmentManager().findFragmentbyId() 都没有工作。

我也尝试从 SectionPagerAdapter 返回SupportMapFragment.newInstance(),但随后它用我不想要的地图片段替换了整个页面。

我也试过了

MapFragment mapFragment = MapFragment.newInstance();
          mapFragment.getMapAsync(new OnMapReadyCallback() {
                @Override
                public void onMapReady(GoogleMap googleMap) {
                    Log.d("intro", "onMapReady");
                }
            });

但这也行不通。 帮助我实现这一目标。

【问题讨论】:

    标签: android android-fragments supportmapfragment mapfragment


    【解决方案1】:

    我做到了。 动态创建地图片段,然后将其放入布局(在我的情况下为 FrameLayout)。将该布局的可见性设置为“已消失”。

            SupportMapFragment mapFragment = SupportMapFragment.newInstance();
            FragmentManager fm = getChildFragmentManager();
            fm.beginTransaction().replace(R.id.map1, mapFragment).commit();
            mapFragment.getMapAsync(new OnMapReadyCallback() {
                @Override
                public void onMapReady(GoogleMap googleMap) {
                    Log.d("intro", "onMapReady");
                }
            }); 
    

    在 XML 中

    <FrameLayout
        android:id="@+id/map1"
        android:visibility="gone"
        android:layout_width="1dp"
        android:layout_height="1dp"/>
    

    【讨论】:

      猜你喜欢
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-12
      相关资源
      最近更新 更多