我创建了一个自定义的NavigationView片段,该片段是从我的MapView片段调用的。按照文档中的示例,我尝试通过创建自定义样式来在navigationView.xml文件中使用运行时样式。到目前为止,除了地图视图本身之外,我还可以自定义每个元素,同时在自定义NavigationView中启动逐行导航。
在我的MapView Fragment中,我已经使用了浅色主题,它可以按预期方式呈现地图颜色。
<com.mapbox.mapboxsdk.maps.MapView
android:id="@+id/map_view"
...
mapbox:mapbox_styleUrl="mapbox://styles/mapbox/light-v9"/>
但是,我在NavigationView.xml中以相同的方式使用styleUrl,这对逐行导航视图的图形表示没有任何影响。它仍然显示默认的白天导航样式。但是,如果要保持一致,我希望地图视图和导航视图具有相同的样式。
<com.mapbox.services.android.navigation.ui.v5.NavigationView
android:id="@+id/navigation_view"
...
app:navigationLightTheme="@style/CustomNavigationViewLight"/>
在我的style.xml文件中,按如下所述添加了以下行:
<!-- Map style -->
<item name="navigationViewMapStyle">@string/navigation_guidance_light</item>
在我的string.xml文件中,我添加了以下带有stylesUrl的行:
<string name="navigation_guidance_light"
translatable="false">mapbox://styles/mapbox/light-v9</string>
由于NavigationView中的MapView实例是私有成员,因此我无法直接访问它并以编程方式添加UrlStyle。有更好的解决方案吗?
实际的逐步导航视图:
我想在导航视图中添加与之前显示的样式相同的灯光样式。