对于百度地图有时候需要自定义一些UI的显示,对于sdk自带效果需要做一定的改动来满足我们的需求。其实地图上的各种试图都是浮动在地图上的view,所以去掉view只需要设置为GONE,或者找到父View给remove掉。但是具体是那个view我们就是踩着石头过河了。这里我们就需要用到强大的debug模式去遍历查看view树,然后对其id进行分析,根据命名可以推测大概的控件,然后通过全局搜素去搜id,找到对饮的布局,根据布局做操作就更得心应手


官方默认效果如下

我们要做的是将红色框内的视图隐藏掉

  1. 去百度地图官网下载最新的导航demo,修改配置运行
  2. 找到DemoGuideActivityonCreate
  3. setContentView(view);添加
  @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);.......View view = mRouteGuideManager.onCreate(this, mOnNavigationListener,null, params);if (view != null) {setContentView(view);//隐藏底部菜单findViewById(R.id.bnav_rg_toolbox_panel_container).setVisibility(View.GONE);}......}

效果如下图:


思路分析

- debug定位控件


我们将断点打到根视图view的位置,然后进入导航界面如上图,可以看到mChildren有两个子视图,我们copy对应的id去搜索,最终定位相关的layout.xml,会发现这些xml都是在onsdk_all.aar中,所以 切换目录视图到project点击External Libraries找到onsdk_all.aar如下:

通过id找布局

布局文件找到了我们就可以开展相应工作了,最终我们要操作的是nsdk_layout_rg_main_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<com.baidu.navisdk.ui.widget.RGRootViewFrameLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"xmlns:apps="http://schemas.android.com/apk/res-auto"android:id="@+id/bnav_rg_mapmode_main_layout"android:layout_width="match_parent"android:layout_height="match_parent"><!-- 地图容器 --><FrameLayoutandroid:id="@+id/bnav_rg_map_content"android:layout_width="match_parent"android:layout_height="match_parent" ></FrameLayout><!-- 选点 --><ViewStubandroid:id="@+id/bnav_rg_pp_layout_stub"android:layout_width="match_parent"android:layout_height="match_parent"android:layout="@layout/nsdk_layout_rg_mapmode_main_sub_pp" /><ViewStubandroid:id="@+id/common_debug_viewstub"android:layout_width="match_parent"android:layout_height="match_parent"android:layout="@layout/nsdk_layout_rg_mapmode_main_sub_common_debug" /><!-- 商业活动容器 --><LinearLayoutandroid:id="@+id/module_contains"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"android:visibility="gone"></LinearLayout><LinearLayoutandroid:id="@+id/bnav_rg_content_panel"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_margin="@dimen/navi_dimens_0dp"android:orientation="vertical"android:padding="@dimen/navi_dimens_0dp"><include layout="@layout/bnav_statusbar_empty_view_include" /><!-- 顶部面板容器 --><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><!--小度语音态--><ViewStubandroid:id="@+id/bnav_rg_xd_voice_container_stub"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="@dimen/nsdk_rg_panel_margin_top"android:inflatedId="@+id/bnav_rg_xd_voice_container"android:layout="@layout/nsdk_layout_rg_xd_voice_panel"android:visibility="gone" /><!-- 诱导面板 --><LinearLayoutandroid:id="@+id/bnav_rg_top_panel"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="@dimen/nsdk_rg_panel_margin_top"android:orientation="vertical"android:visibility="visible"><FrameLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><!-- 模糊诱导信息 --><ViewStubandroid:id="@+id/nsdk_layout_rg_mapmode_main_sub_fuzzy_guide_stub"android:layout_width="match_parent"android:layout_height="@dimen/nsdk_rg_top_panel_height"android:inflatedId="@+id/nsdk_layout_rg_mapmode_main_sub_fuzzy_guide_panel"android:layout="@layout/nsdk_layout_rg_mapmode_main_sub_fuzzy_guide" /><!-- 简易诱导信息 --><include layout="@layout/nsdk_layout_rg_mapmode_main_sub_simple_guide" /><!-- 高速模式容器 v4.0 --><FrameLayoutandroid:id="@+id/bnav_rg_highway_container"android:layout_width="match_parent"android:layout_height="wrap_content"android:visibility="gone"></FrameLayout><!-- 导航中设备状态 --><FrameLayoutandroid:id="@+id/bnav_rg_device_status_container"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginRight="@dimen/navi_dimens_10dp"android:visibility="gone"></FrameLayout><!--随后转向标--><FrameLayoutandroid:id="@+id/bnav_rg_next_deriction_indicator"android:layout_width="match_parent"android:layout_height="wrap_content"android:visibility="gone"></FrameLayout></FrameLayout></LinearLayout></RelativeLayout><!-- 操作态、辅助诱导面板 --><FrameLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginLeft="@dimen/nsdk_rg_guide_panel_shadow_left"><RelativeLayoutandroid:id="@+id/bnav_rg_assist_panel"android:layout_width="match_parent"android:layout_height="wrap_content"android:visibility="gone"><include layout="@layout/nsdk_layout_rg_mapmode_assist_panel_layout" /></RelativeLayout><!-- 控制面板-操作态 --><ViewStubandroid:id="@+id/bnav_rg_control_panel_stub"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_marginBottom="@dimen/nsdk_rg_control_panel_bottom_margin"android:layout="@layout/nsdk_layout_rg_mapmode_main_sub_control_panel" /><ViewStubandroid:id="@+id/bnav_rg_nearby_search_stub"android:layout_width="wrap_content"android:layout_height="match_parent"android:layout_marginBottom="@dimen/nsdk_rg_control_panel_bottom_margin"android:layout="@layout/nsdk_layout_rg_nearby_search_filter_panel" /></FrameLayout></LinearLayout><!--简约面板容器--><RelativeLayoutandroid:id="@+id/bnav_simple_model_guide_panel_layout"android:layout_width="wrap_content"android:layout_height="wrap_content"><com.baidu.navisdk.ui.widget.EmptyTopLayoutandroid:id="@+id/bnav_simple_mode_guide_top_empty_view"android:layout_width="@dimen/nsdk_rg_simple_model_guide_panel_width"android:layout_height="wrap_content"/><!-- 简易模式诱导面板 --><ViewStubandroid:id="@+id/bnav_rg_simple_mode_guide_stub"android:layout_width="@dimen/nsdk_rg_simple_model_guide_panel_width"android:layout_height="@dimen/nsdk_rg_simple_model_guide_panel_height"android:layout_below="@id/bnav_simple_mode_guide_top_empty_view"android:layout_marginTop="@dimen/nsdk_rg_panel_margin_top"android:inflatedId="@+id/bnav_rg_simple_model_guide_panel"android:layout="@layout/nsdk_layout_rg_simple_mode_guide" /><!-- 简易模式高速诱导面板 --><ViewStubandroid:id="@+id/bnav_rg_simple_mode_highway_view_stub"android:layout_width="@dimen/nsdk_rg_simple_model_guide_panel_width"android:layout_height="@dimen/nsdk_rg_simple_model_guide_panel_height"android:layout_below="@id/bnav_simple_mode_guide_top_empty_view"android:layout_marginTop="@dimen/nsdk_rg_panel_margin_top"android:inflatedId="@+id/bnav_rg_simple_model_highway_view"android:layout="@layout/nsdk_layout_rg_simple_mode_guide" /></RelativeLayout><!--当前道路名view--><RelativeLayoutandroid:id="@+id/bnav_rg_cur_road_name_container"android:layout_width="match_parent"android:layout_height="match_parent"android:visibility="gone"/><!--首汽view--><RelativeLayoutandroid:id="@+id/shouqi_view_group"android:layout_width="match_parent"android:layout_height="wrap_content"android:minHeight="@dimen/nsdk_rg_toolbox_margin_left"android:layout_marginBottom="@dimen/nsdk_rg_shouqi_view_bottom_margin"android:layout_gravity="bottom" /><!-- 工具箱 --><RelativeLayoutandroid:id="@+id/bnav_rg_toolbox_panel_container"tools:visibility="gone"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="bottom"/><!-- 菜单view --><RelativeLayoutandroid:id="@+id/bnav_rg_menu_panel"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#66000000"android:visibility="gone"><LinearLayoutandroid:id="@+id/bnav_rg_menu_container"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:orientation="vertical"/></RelativeLayout><!--ugc 上报面板--><com.baidu.navisdk.module.ugc.report.ui.UgcReportPanelLayoutandroid:id="@+id/bnav_rg_ugc_menu_panel"android:layout_width="match_parent"android:layout_height="match_parent"android:visibility="gone"/><!-- UGC 详情view --><include layout="@layout/nsdk_layout_ugc_detail_panel"/><!-- 周边搜索view --><RelativeLayoutandroid:id="@+id/bnav_rg_route_search_panel"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#66000000"android:visibility="gone"><RelativeLayoutandroid:id="@+id/bnav_rg_route_search_container"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentBottom="true"/></RelativeLayout><!-- 路线排序 --><LinearLayoutandroid:id="@+id/bnav_rg_route_sort_panel"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/nsdk_cl_rg_bg_a"android:orientation="vertical"android:visibility="gone"><Viewandroid:layout_width="match_parent"android:layout_height="@dimen/navi_dimens_0dp"android:layout_weight="1" /><RelativeLayoutandroid:id="@+id/bnav_rg_route_sort_container"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center_vertical"></RelativeLayout></LinearLayout><!-- 放大图 --><ViewStubandroid:id="@+id/bnav_rg_enlarge_road_map_stub"android:layout_width="match_parent"android:layout_height="match_parent"android:layout="@layout/nsdk_layout_rg_mapmode_main_sub_enlarge_road_map" /><RelativeLayoutandroid:id="@+id/bnav_rg_collada_view_rl"android:layout_width="match_parent"android:layout_height="@dimen/navi_dimens_200dp"android:visibility="gone"><LinearLayoutandroid:id="@+id/bnav_rg_collada_view"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_alignParentTop="true"android:orientation="horizontal"></LinearLayout><ImageViewandroid:id="@+id/bnav_rg_collada_open_close"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:layout_centerHorizontal="true"android:layout_marginBottom="@dimen/navi_dimens_0dp"android:paddingBottom="@dimen/navi_dimens_0dp"android:scaleType="centerInside"android:src="@drawable/nsdk_drawable_enlarge_close_p"android:visibility="gone" /></RelativeLayout><RelativeLayoutandroid:id="@+id/enlarge_lane_container"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"android:visibility="gone" /><!--卡片容器--><RelativeLayoutandroid:id="@+id/navi_rg_card_container"tools:visibility="gone"android:layout_width="match_parent"android:layout_height="match_parent"></RelativeLayout><!-- 更多设置 --><RelativeLayoutandroid:id="@+id/bnav_rg_menu_more_setting_container"android:layout_width="match_parent"android:layout_height="match_parent"android:visibility="gone"></RelativeLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/bluetooth_panel_layout"android:background="@color/nsdk_cl_rg_bg_a"android:padding="@dimen/nsdk_rg_toolbox_margin_left"android:visibility="gone" ><!--蓝牙控制panel--><include layout="@layout/nsdk_layout_rg_bluetooth_controller_panel" /></LinearLayout><RelativeLayoutandroid:id="@+id/navi_rg_safety_guide"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/nsdk_share_route_bg"android:visibility="gone"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentTop="true"android:layout_centerHorizontal="true"android:layout_marginTop="@dimen/navi_dimens_206dp"android:text="@string/nsdk_string_rg_cp_safety_guide"android:textColor="#ffffff"android:textSize="@dimen/navi_dimens_19dp" /></RelativeLayout><ViewStubandroid:id="@+id/bnav_rg_notification_debug_layout_stub"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout="@layout/nsdk_layout_rg_mapmode_main_sub_notification_debug" /><!-- 通知 --><RelativeLayoutandroid:id="@+id/bnav_rg_notification_panel"android:layout_width="match_parent"android:layout_height="match_parent"android:visibility="gone"><RelativeLayoutandroid:id="@+id/bnav_rg_notification_container"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_gravity="bottom"></RelativeLayout></RelativeLayout><!--高速订阅面板--><ViewStubandroid:id="@+id/navi_rg_highway_subscript_stub"android:inflatedId="@+id/navi_rg_highway_subscript_layout"android:layout_width="match_parent"android:layout_height="match_parent"android:layout="@layout/nsdk_layout_hw_subscript_view"android:visibility="gone"/><ViewStubandroid:id="@+id/open_the_door_for_me"android:layout_width="match_parent"android:layout_height="match_parent"android:layout="@layout/nsdk_layout_rg_mapmode_main_sub_open_the_door" /><FrameLayoutandroid:id="@+id/debug_view_container"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center_vertical"android:visibility="gone"></FrameLayout><!--首次引导--><RelativeLayoutandroid:id="@+id/navi_rg_first_enter_guide"android:layout_width="match_parent"android:layout_height="match_parent"android:visibility="gone"></RelativeLayout>
</com.baidu.navisdk.ui.widget.RGRootViewFrameLayout>

去修改布局文件是可以达到我们效果,但是不是很灵活,而且一般般的aar是只读文件,所以还是在代码中实现比较好。

所以要想干掉对应的布局只需要在上面的布局文件中找id,然后设置GONE;比较人性化的是还提供了相关控件的注释,举一反三

Android一行代码去掉百度导航的底部工具箱菜单相关推荐

  1. 一行代码开启百度云Blynk云服务器

    一行代码开启百度云开启Blynk云服务器 一行代码开启百度云Blynk云服务器 第一步,先去买个云服务器 第二步,安装宝塔面板 第三步,一行代码运行blynk服务器. 第四步,在宝塔面板上把9443端 ...

  2. Android 一行代码搞定将错误日志放入到sd卡中且不需要任何权限,适配到android7.0

    Android 一行代码搞定将错误日志放入到sd卡中且不需要任何权限,适配到android7.0 之前所有的项目都有一个将崩溃日志写入到sd卡的工具类,然后每次项目新建都从老项目copy过来,后来慢慢 ...

  3. android一行代码实现在线更新

    App在线更新插件 整合了一下网上的有关app的在线更新的东西,懒得打成jar包了,照着步骤做可以实现app在线更新,主界面添加一行代码即可,详细步骤见说明.不依赖第三方更新服务,需要自己搭建后台服务 ...

  4. 去掉屏底部三个虚拟按键 ,默认手势导航,去掉手势导航的底部横线。

    低版本直接改qemu.hw.mainkeys,因为就没有手势导航,P版本开始才有的 S版本如下.只需要打个overlay frameworks/base/core/res/res/values/dim ...

  5. selenium爬虫:一行代码去掉所有webdriver痕迹

    1.前言 码工人之歌   码工人,码工魂,码工人才是人上人.   码工人你不要哭,因为--骑电瓶车的时候,擦眼流水儿不安全.   码工人996写代码少活十年,而不写代码一天都活不下去. 2.问题    ...

  6. android加载网页pdf,android 一行代码搞定加载网络 pdf 文件

    之前写过一篇Android打开本地pdf文件的文章,最后总结的时候说,后面一定要拓展库,让其也能打开网络的的pdf文件.今天终于可以兑现承诺了.frok一份代码github.com/JoanZapat ...

  7. Android一行代码实现网络加载GIF闪图(附源码)

    最近项目有个需求是要从网络加载GIF闪图, 但是Android原生的ImageView并不支持Gif... 于是从网上看了些Dome, 发现总是有些这样那样的问题, 譬如: ☹ 没有缓存,还要自己写一 ...

  8. android 动态扫码框,Android 一行代码接入扫码功能 (CameraX + zxing)持续更新....

    怎么集成: 1.在根目录的build.gradle中添加jitpack依赖: allprojects { repositories { maven { url "https://jitpac ...

  9. python 一行代码去掉emoji表情符号

    安装python 包 pip install emoji 使用方法 import emoji res = "".join(emoji.replace_emoji("I

  10. android像360一样跳转到系统菜单,Android开源库-仿360手机助手底部动画菜单布局

    效果对比:360手机助手效果演示:本库实现的效果(Icon来自360手机助手,侵删) 使用方法: xml布局文件 注:为了美观,讲每个Button的高度以及固定,设置wrap_content时候是最大 ...

最新文章

  1. 剑指offer之26-30题解
  2. php 怎么防止提交空记录,为什么空提交什么都不提示?
  3. 2020/5/13号单词
  4. python实例 83,84
  5. Python《回车桌面图片》
  6. 【clickhouse】clickhouse Uint64 不是64位 超限不报错
  7. VMware12部署windows xp虚拟机
  8. HTTPRunner学习笔记
  9. 学术研究 | 仅仅因为方法 Too Simple 就被拒稿,合理吗?
  10. i7 8750h支持linux,6核神U!i7-8750H游戏本评测:碾压7代
  11. SAP Pa studay,Material master
  12. Java--IDEA报错Project ‘org.springframework.boot:spring-boot-starter-parent:2.2.0.RELEAS
  13. MySQL必知必会——实践习题
  14. SC16IS752调试
  15. 实验五 FBG团队亮相
  16. srs linux开机启动,SRS之安装与使用
  17. 数据结构——栈的使用
  18. JavaWeb项目1-QQZone
  19. MYSQL 使用基础 - 这么用就对了
  20. 实用epub阅读器分享

热门文章

  1. Linux-shell篇之while用法
  2. win7计算机不在桌面了,怎么办Win7系统开机后不显示桌面
  3. 苹果笔记本计算机内存不足怎么办,macbook内存不够用怎么加_苹果电脑增加内存的具体方法...
  4. idea中MySQL数据库分页
  5. matlab 稀疏矩阵求 特征值
  6. python交并补_python开发学习- ( 字典的相关函数 集合中的交差并补 集合相关的函数 冰冻集合)...
  7. 【信息系统项目管理师】第十二十三章 项目采购合同管理(考点汇总篇)
  8. OpenStack 运维 - 环境部署 | 报错排查 [T版]
  9. 关于对CSDN这些技术博客类网站的一些个人看法
  10. 服务器之IP地址与域名之间的绑定