Android 如何将MapBox地图添加到bottomnavigation | Kotlin中的片段中

Android 如何将MapBox地图添加到bottomnavigation | Kotlin中的片段中,android,kotlin,mapbox,Android,Kotlin,Mapbox,我正在尝试将地图添加到我的Android应用程序中。我已经创建了与本教程中相同的基本底部导航:。我只添加了两个片段 现在我想把MappBox地图添加到其中一个。以下是Mapbox快速入门指南: 一切正常,但问题是地图不起作用。当我将映射添加到主活动XML时,映射将加载并工作。但是,当我将映射添加到其中一个片段时,映射不会加载。我只在emulator中按住ctrl键时才能看到指南 这是在中具有映射的片段: <?xml version="1.0" encoding=&quo

我正在尝试将地图添加到我的Android应用程序中。我已经创建了与本教程中相同的基本底部导航:。我只添加了两个片段

现在我想把MappBox地图添加到其中一个。以下是Mapbox快速入门指南:

一切正常,但问题是地图不起作用。当我将映射添加到主活动XML时,映射将加载并工作。但是,当我将映射添加到其中一个片段时,映射不会加载。我只在emulator中按住ctrl键时才能看到指南

这是在中具有映射的片段:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SecondFragment">

<com.mapbox.mapboxsdk.maps.MapView
    android:id="@+id/map_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
</com.mapbox.mapboxsdk.maps.MapView>
</androidx.constraintlayout.widget.ConstraintLayout>

这是主要活动的一部分:

Mapbox.getInstance(this, getString(R.string.mapbox_access_token))

    setContentView(R.layout.activity_main)

    val bottomNavigationView = findViewById<BottomNavigationView>(R.id.bottomNavigationView)
    val navController = findNavController(R.id.fragment)
    val appBarConfiguration = AppBarConfiguration(setOf(R.id.firstFragment, R.id.secondFragment))
    setupActionBarWithNavController(navController, appBarConfiguration)

    bottomNavigationView.setupWithNavController(navController)

    mapView = findViewById(R.id.map_view)
    mapView?.onCreate(savedInstanceState)
    mapView?.getMapAsync { mapboxMap ->

        mapboxMap.setStyle(Style.MAPBOX_STREETS) {

            // Map is set up and the style has loaded. Now you can add data or make other map adjustments

        }

    }
Mapbox.getInstance(这个,getString(R.string.Mapbox\u访问\u令牌))
setContentView(R.layout.activity_main)
val bottomNavigationView=findViewById(R.id.bottomNavigationView)
val navController=findNavController(R.id.fragment)
val appBarConfiguration=appBarConfiguration(setOf(R.id.firstFragment,R.id.secondFragment))
setupActionBarWithNavController(navController、appBarConfiguration)
bottomNavigationView.setupWithNavController(navController)
mapView=findViewById(R.id.map\u视图)
mapView?.onCreate(savedInstanceState)
mapView?.getMapAsync{mapboxMap->
mapboxMap.setStyle(Style.MapboxU街道){
//地图已设置且样式已加载。现在您可以添加数据或进行其他地图调整
}
}

你能帮我解决这个问题吗?

只有拥有
MapView
的片段才应该与
MapView
交互-你的活动不应该参与。

如果你的片段之一拥有
MapView
,那么应该是该片段在设置
MapView
。为什么您的活动要做与它不拥有的视图相关的事情?我理解,。但我对这一点还不熟悉,所以我只是遵循了教程。在教程中,片段仅在XML文件中声明。并在AppBarConfiguration中使用它们。那么,如果没有地方去做,我如何从它设置映射呢?仍然有一个片段类。这就是那个片段的代码所在。谢谢。我完全没有注意到,当我使用android studio工具为它创建片段时,它为它们创建了类。现在地图开始工作了。