示例中心
功能在线体验
控制台

Android Fragment 导航

介绍如何使用 Fragement 方式实现导航。

00:00 / 01:00
扫描二维码在手机端体验功能
体验移动端 扫码体验移动端

使用场景

指导您使用 Fragment 方式实现导航功能。

用到产品

Android 导航 SDK

核心类/接口

接口

说明

版本

AMapNaviView

onCreate(Bundle savedInstanceState) 

与Activity onCreate同步

V1.0.0


onResume()

与Activity onResume同步

V1.0.0


onPause()

与Activity onPause同步

V1.0.0


onDestroy()

与Activity onDestroy同步

在1.6.0之前,此方法会自动执行AMapNavi.stopNavi(); 

在1.6.0之后(包括1.6.0),请用户自己根据需要选择执行AMapNavi.stopNavi()

V1.0.0

AMapNavi

calculateDriveRoute(java.util.List<NaviLatLng> from, java.util.List<NaviLatLng> to, java.util.List<NaviLatLng> wayPoints, int strategy)

计算驾车路径(包含起点)。

V1.0.0


startNavi(int naviType)

开始导航。实时导航GPS未开启时,会自动打开GPS定位功能。模拟导航则不需要使用定位功能。

V1.0.0

AMapNaviListener

onCalculateRouteSuccess() 

路径规划的成功的回调函数。

V1.0.0

核心难点

1、如何使用 Fragment 方式进行导航页面展示。

a)定义布局。

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.amap.navifragement.NaviFragment">

    <com.amap.api.navi.AMapNaviView
        android:id="@+id/navi_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</FrameLayout>

b)实现 AMapNaviView 的生命周期。

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_navi, container, false);
    mAMapNaviView = (AMapNaviView) view.findViewById(R.id.navi_view);
    mAMapNaviView.onCreate(savedInstanceState);
    mAMapNaviView.setAMapNaviViewListener(this);
    return view;
}

@Override
public void onResume() {
    super.onResume();
    mAMapNaviView.onResume();
}

@Override
public void onPause() {
    super.onPause();
    mAMapNaviView.onPause();
}

@Override
public void onDestroy() {
    super.onDestroy();
    mAMapNaviView.onDestroy();
}