android - getSupportFragmentManager().findFragmentById 在 GoogleMap 上返回 null

标签 android google-maps android-fragments

我只是想让我的 map fragment 能够执行 getmapasync 并在其上绘制标记。但是我的 mapFragment 值始终为空。我不明白为什么。我从其他答案中了解到,这可能与我的 fragment 在框架内并因此是某种 child 这一事实有关。

这是我的代码:

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayShowTitleEnabled(false);

        startService(new Intent(MainActivity.this, TrackerService.class));
        bindService(new Intent(MainActivity.this, TrackerService.class), myConnection, Context.BIND_AUTO_CREATE);

        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }
@Override
    public void onMapReady(GoogleMap googleMap) {
        Log.d("DEBUG", "MAP READY");
        mMap = googleMap;
        drawLocationMarkers();
    }

还有 XML:

<FrameLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="7dp"
        android:background="@drawable/custom_card"
        android:layout_weight="0.5">

        <fragment
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/map"
            class="com.google.android.gms.maps.MapFragment"/>

    </FrameLayout>

最佳答案

您需要更改布局以使用 SupportMapFragment 而不是 MapFragment

android:name="com.google.android.gms.maps.SupportMapFragment"

关于android - getSupportFragmentManager().findFragmentById 在 GoogleMap 上返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41282420/

相关文章:

android - ExpandableListFragment 与 LoaderManager 兼容包

android - 显示修改后的实时相机预览

java - java中如何读取Json中的Json?

Android Studio - 单个项目中具有共同依赖项的多个 android 应用程序

javascript - Google map "Uncaught TypeError: Cannot read property ' defaultView' 未定义”

Fragment 中的 Android TabHost

android - 应用内结算优惠券

javascript - 为什么我的函数没有在谷歌地图的点击事件中被调用?

javascript - 在 Jquery 多步骤表单中刷新 Google map

android - 再次调用 "onCreateView"- Android