使用以下模板时,您可以添加相应支持来允许用户与您绘制的地图互动,例如让用户通过缩放和平移查看地图的不同部分。
| 模板 | Car App API 级别支持 |
|---|---|
NavigationTemplate |
2 |
(已弃用) |
4 |
(已弃用) |
4 |
(已弃用) |
5 (引入模板) |
MapWithContentTemplate |
7 (引入了模板) |
实现互动回调
SurfaceCallback 接口有多种回调方法,您可以实现这些方法,以便为使用上一部分中的模板构建的地图添加互动功能:
| 互动 | 方法 | Car App API 级别支持 |
|---|---|---|
| 点按 | onClick |
5 |
| 双指张合即可缩放 | onScale |
2 |
| 单点触控拖动 | onScroll |
2 |
| 单点触控快速滑动 | onFling |
2 |
| 点按两次 |
(缩放比例由模板主机决定) |
2 |
| 平移模式下的旋转轻推 |
(距离系数由模板主机决定) |
2 |
添加地图操作栏
这些模板可以为地图相关操作(例如放大和缩小、重新居中、显示罗盘或您选择显示的其他操作)提供地图操作栏。地图操作栏最多可包含四个仅显示图标的按钮,这些按钮可在不影响任务深度的情况下刷新。操作栏在空闲状态下会隐藏,在活跃状态下则重新出现。
如需接收地图互动回调,您必须在地图操作栏中添加一个 Action.PAN 按钮。当用户按平移按钮时,主机会进入平移模式,如了解平移模式中所述。
如果应用的地图操作栏中没有 Action.PAN 按钮,您将无法从 SurfaceCallback 方法接收用户输入,并且主机会关闭先前启用的任何平移模式。
在触摸屏上,系统不会显示平移按钮。
了解平移模式
在平移模式下,模板主机会将来自非触控输入设备(例如旋控器和触控板)的用户输入在转换后传递给相应的 SurfaceCallback 方法。系统会使用 NavigationTemplate.Builder 中的 setPanModeListener 方法响应用户操作来进入或退出平移模式。当用户处于平移模式时,主机可以隐藏模板中的其他界面组件。