需求:接入高德导航SDK后,自定义导航页面,采用某些SDK按钮样式
问题:采用某些SDK自带的 View 时没有显示(比如:ZoomButtonView、TrafficButtonView)
解决:编制 xml 文件时,SDK自带的 View 要在 AMapNaviView 下面
<com.amap.api.navi.AMapNaviView
android:id="@+id/navi_view"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<com.amap.api.navi.view.ZoomButtonView
android:id="@+id/zb_zoom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<com.amap.api.navi.view.TrafficButtonView
android:id="@+id/tb_traffic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
// TODO: 2017/12/21 自定义UI时要打开下面的代码设置
/*AMapNaviViewOptions options = mAMapNaviView.getViewOptions();
options.setLayoutVisible(false); // 除地图外不显示其它UI
options.setAutoDrawRoute(true); // 自动绘制导航路线
mAMapNaviView.setViewOptions(options);*/
NextTurnTipView ntTurnIcon = (NextTurnTipView) findViewById(R.id.nt_turn_icon);
mAMapNaviView.setLazyNextTurnTipView(ntTurnIcon); // 设置SDK的导航图标类型
// TODO: 2017/12/21 xml 布局中 ZoomButtonView、TrafficButtonView 要在 AMapNaviView 下面
ZoomButtonView zbZoom = (ZoomButtonView) findViewById(R.id.zb_zoom);
mAMapNaviView.setLazyZoomButtonView(zbZoom); // 设置SDK的放大缩小按钮样式
TrafficButtonView tb_traffic = (TrafficButtonView) findViewById(R.id.tb_traffic);
mAMapNaviView.setLazyTrafficButtonView(tb_traffic); // 设置SDK的路况开关样式
ps:太奇葩了…