浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。
(以“{{android-syncdisplay-sidebar}}<div class="h1-title">导航</div> 导航有2种模式,分别是轻导航和专业导航。 <div class="bluetitle"><div class="servi...”为内容创建页面)
 
 
第119行: 第119行:
 
</pre>
 
</pre>
  
更详细的api请参考类参考文档<span style="background-color:#FFFF00;">(可以加链接)</span>
 
  
 
调用方法以OnCreate为例:
 
调用方法以OnCreate为例:

2020年3月27日 (五) 05:25的最后版本

导航

导航有2种模式,分别是轻导航和专业导航。

轻导航模式

前台轻导航的实现需要在Activity.onCreate()或者Fragment.onCreateView()中初始化轻导航View,把轻导航View add进入第三方APP页面布局中,还需要在Activity或者Fragment的生命周期调用轻导航的生命周期,相关方法在BaiduNaviManagerFactory.getLightNaviManager()中:

/**
 * 获取百度地图轻导航view
 *
 * @param activity
 *
 * @return
 */
View onCreate (Activity activity);

/**
 * 需要在Activity的onStart() 或者 Fragment的onStart() 中调用
 */
void onStart ();

/**
 * 需要在Activity的onResume() 或者 Fragment的onResume() 中调用
 */
void onResume ();

/**
 * 需要在Activity的onPause() 或者 Fragment的onPause() 中调用
 */
void onPause ();

/**
 * 需要在Activity的onStop() 或者 Fragment的onStop() 中调用
 */
void onStop ();

/**
 * 需要在Activity的onDestroy() 或者 Fragment的onDestroy() 中调用
 *
 * @param isSwitchToNavi 是否准备切换到专业导航模式
 */
void onDestroy ( boolean isSwitchToNavi);

调用方法以OnCreate为例:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    contentView = inflater.inflate(R.layout.onsdk_fragment_light_navi, container, false);
// 获取百度地图轻导航view
    View view = BaiduNaviManagerFactory.getLightNaviManager().onCreate(getActivity());
    FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT,
            FrameLayout.LayoutParams.MATCH_PARENT);
    if (view != null) {
        FrameLayout contentContainer = contentView.findViewById(R.id.content_container);
        BaiduNaviManagerFactory.getLightNaviSettingManager().setRouteMargin(
                100,
                ScreenUtil.getInstance().dip2px(280),
                100,
                ScreenUtil.getInstance().dip2px(80));
        if (view.getParent() != null) {
            ViewGroup parent = (ViewGroup) view.getParent();
            parent.removeView(view);
        }
        // add 导航view
        contentContainer.addView(view, layoutParams);
    }

    return contentView;
}

更详细的api请参考Demo中的使用。

专业导航模式

专业导航的实现需要在Activity.onCreate()或者Fragment.onCreateView()中初始化专业导航View,把专业导航View add进入第三方APP页面布局中,还需要在Activity或者Fragment的生命周期调用专业导航的生命周期,相关方法在BaiduNaviManagerFactory.getRouteGuideManager()中:

/**
 * 获取百度专业导航过程View对象,将其加入应用布局内即可显示导航过程.
 *
 * @param activity 应用导航过程所属Activity对象
 * @param listener 导航过程监听器,主要是监听导航过程中消息分发,比如到达终点、导航结束和更新路名等
 * @param callback 添加自定义View到导航中的callback对象
 *
 * @return
 */
View onCreate(final Activity activity, final OnNavigationListener listener, final NaviAddViewCallback callback);

/**
 * 获取百度专业导航过程View对象,将其加入应用布局内即可显示导航过程.
 *
 * @param activity 应用导航过程所属Activity对象
 * @param listener 导航过程监听器,主要是监听导航过程中消息分发,比如到达终点、导航结束和更新路名等
 *
 * @return
 */
View onCreate(final Activity activity, final OnNavigationListener listener);

/**
 * 在 Activity的onStart() 或者 Fragment的onStart() 中调用
 */
void onStart();

/**
 * 在Activity的onResume() 或者 Fragment的onResume() 中调用
 */
void onResume();

/**
 * 在Activity的onPause() 或者 Fragment的onPause() 中调用
 */
void onPause();

/**
 * 在Activity的onStop() 或者 Fragment的onStop() 中调用
 */
void onStop();

/**
 * 在Activity的onDestroy() 或者 Fragment的onDestroy() 中调用
 *
 * @param isSwitchToLightNavi 在退出专业导航后是否切换到轻导航
 */
void onDestroy(boolean isSwitchToLightNavi);


调用方法以OnCreate为例:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.onsdk_activity_professional);
    contentContainer = (FrameLayout) findViewById(R.id.view_container);
   // 获取百度专业导航过程View对象,将其加入应用布局内即可显示导航过程.
    View view = BaiduNaviManagerFactory.getRouteGuideManager().onCreate(this, mOnNavigationListener, null);
    if (view != null) {
        if (view.getParent() != null) {
            ViewGroup parent = (ViewGroup) view.getParent();
            parent.removeView(view);
        }
        contentContainer.addView(view);
    }
}

更详细用法可参考Demo中BNOrderNaviFragment类。

横竖屏切换

为了防止在手机横竖屏切换过程中,导航出现布局混乱以及crash等情况,请在页面的onConfigurationChanged生命周期方法内调用专业导航的onConfigurationChanged接口。

@Override
public void onConfigurationChanged(android.content.res.Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
BaiduNaviManagerFactory.getRouteGuideManager().onConfigurationChanged(newConfig);
}
  • 文档根本没法用

  • 文档水平很差

  • 文档水平一般

  • 文档不错

  • 文档写的很好

如发现文档错误,或对此文档有更好的建议,请在下方反馈。问题咨询请前往反馈平台提交工单咨询。

提交反馈

拖动标注工具

添加矩形标注

添加箭头标注

完成

取消