开发 HarmonyOS NEXT 导航SDK 开发指南 UI界面定制 自定义UI控件

自定义UI控件 最后更新时间: 2026年05月29日

单元素自定义

可以通过AMapNaviViewOptions中如下接口进行单UI元素显示隐藏,只列出部分接口,更多功能请参考AMapNaviViewOptions类。 

、	/**
	 * 设置菜单按钮是否在导航界面显示。
	 *
	 * @param enabled 菜单按钮是否在导航界面显示。true代表显示,false代表不显示。
	 */
	public setSettingMenuEnabled(enabled: boolean):  void {
		this.isSettingMenuEnabled = enabled;
	}
    	/**
	 * 设置导航界面是否显示路线全览按钮。
	 *
	 * @param isShow 设置全览按钮是否在导航界面显示,默认显示。true,显示;false,隐藏。
	 */
	public setRouteListButtonShow(isShow: boolean):  void {
		this.isRouteListButtonShow = isShow;
	}

整体UI自定义

如上图所示,我们可以通过AMapNaviViewOptions中如下接口,来一键控制所有 UI 控件的显示和隐藏。 

	/**
	 * 设置导航界面UI是否显示。
	 * 注意:<font color='red'>该接口会同时隐藏模型放大图和实景放大图,隐藏后可以通过{@link AMapModeCrossOverlay}绘制放大图</font>
	 * @param isLayoutVisible true导航界面显示,false导航界面不显示。
	 */
	public setLayoutVisible(isLayoutVisible: boolean):  void {
		this.isLayoutVisible = isLayoutVisible;
	}

当不显示UI时,地图锚点也可以通过AMapNaviViewOptions进行自定义,可以根据自己的UI布局来调整比例尺的位置和锁车态时自车图标的默认显示位置,接口如下:

	/**
	 * 设置自车位置锁定在屏幕中的位置
	 *
	 * @param x 取值范围:0-1 在x轴的位置,百分比
	 * @param y 取值范围:0-1 在y轴的位置,百分比
	 * @since 2.2.3
	 */
	public setPointToCenter(x: number, y: number):  void {
		this.mapCenterX = x;
		this.mapCenterY = y;
	}

借助导航提供的View(DriveWay、CrossImage、CustomTrafficProgressBar、TrafficButtonView、PreviewRouteButton等),组装自己的导航界面。

创建AMapNaviComponent以后设置appCustomerConfig中调用一下方法。

 /**
   * 设置用户自定义的车道线
   * @param lazyDriveWayView
   * @since 2.2.3
   */
  setLazyDriveWayView?: ()=> void
    /**
   * 设置自定义的路口放大图
   *
   * @param zoomInIntersectionView
   * @since 2.2.3
   */
  setLazyZoomInIntersectionView?: ()=>void
    /**
   * 设置自定义的路况按钮视图
   *
   * @param lazyTrafficButtonView
   * @since 2.2.3
   */
  setLazyTrafficButtonView?:() => void
    /**
   * 设置用户自定义的全览按钮
   *
   * @param lazyOverviewButtonView
   */
  setLazyOverviewButtonView?:() => void
   /**
   * 设置用户自定义的导航光柱条View
   * <br>
   * 设置自定义的光柱条view,只需要设置位置和宽、高即可,颜色车标等元素,导航SDK内部会帮助进行更新操作。
   *
   * @param lazyTrafficProgressBarView
   * @since 2.2.3
   */
  setLazyTrafficProgressBarView?: ()=>void

返回顶部 示例中心 常见问题 智能客服 公众号
二维码