Mapbox:自定义NavigationView的运行时样式

时间:2018-11-29 16:53:43

标签: android mapbox mapbox-android

我创建了一个自定义的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。有更好的解决方案吗?

实际的逐步导航视图:

Actual Navigation View Style

我想在导航视图中添加与之前显示的样式相同的灯光样式。

Desired Navigation View Style

0 个答案:

没有答案