接入高德 SDK 遇到的问题 02:导航SDK中的某些View不显示

需求:接入高德导航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:太奇葩了…

猜你喜欢

转载自blog.csdn.net/zeqiao/article/details/78953907
今日推荐