当前位置: 首页 > news >正文

android app控制ros机器人四(调整界面布局)

半吊子改安卓,记录页面布局调整:

在ros-mobile基础上顶端增加一行,用于显示app名称和logo图像;修改标签页。

添加文字简单,但是替换图标长知识了,开始只是简单的把mipmap各个文件夹下的图片进行替换,但是最后运行图像不显示还是原来的app的logo。

<!-- 新增的顶部水平线性布局 -->                                   
<LinearLayout                                          android:layout_width="match_parent"                android:layout_height="match_parent"               android:orientation="vertical">                    <!-- 新增的顶部水平线性布局       -->                            <LinearLayout                                      android:layout_width="match_parent"            android:layout_height="47dp"                   android:gravity="center_vertical"              android:orientation="horizontal"               android:padding="16dp">                        <!-- 显示 Logo 图的 ImageView -->                  <ImageView                                     android:layout_width="wrap_content"        android:layout_height="30dp"               android:scaleType="centerCrop"             android:src="@mipmap/ic_launcher" />       <!-- 显示 App 名称的 TextView -->                   <TextView                                      android:layout_width="wrap_content"        android:layout_height="30dp"               android:layout_gravity="center_horizontal" android:layout_marginStart="6dp"           android:text="name"                  android:textSize="30sp" />                 </LinearLayout>                                    

查阅资料了解到mipmap下的各个子文件是这个作用:

 

 阅读上述文件中的代码,才发现ros-mobile使用的是自适应图标,按照下面两个教程可以生成logo:

创建应用图标  |  Android Studio  |  Android Developers

`fragment_main.xml`是`ROS-Mobile`应用程序的主要布局文件,用于显示顶部的标签栏和导航抽屉。

fragment_main.xml中添加新的TabItem元素。在TabLayout部分中添加一个新的TabItem元素,并设置android:text属性为新选项卡的名称。

<!-- 新增的选项卡 --><com.google.android.material.tabs.TabItemandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="NewTab" />

创建一个新的片段来处理新选项卡的内容,res/navigation/main_navigation.xml中添加代码与新创建的片段相关联:

<fragmentandroid:id="@+id/mapFragment"android:name="com.schneewittchen.rosandroid.ui.fragments.map.MapFragment"android:label="MapFragment"tools:layout="@layout/fragment_map" /><actionandroid:id="@+id/action_to_mapFragment"app:destination="@id/mapFragment"app:popUpTo="@id/main_navigation"app:popUpToInclusive="true" />

MainFragment.java中处理新选项卡的点击事件:

 // Setup tabs for navigationtabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {@Overridepublic void onTabSelected(TabLayout.Tab tab) {Log.i(TAG, "On Tab selected: " + tab.getText());switch (tab.getText().toString()) {case "地图管理":// Handle NewTab clicknavController.navigate(R.id.action_to_mapFragment);

设置对应layout文件和对应的fagement类

这样可以添加一个新的选项卡,并在点击选项卡时导航到相应的Fragment。

http://www.lryc.cn/news/106027.html

相关文章:

  • 稍微深度踩坑haystack + whoosh + jieba
  • 微信小程序(van-tabs) 去除横向滚动条样式(附加源码解决方案+报错图)
  • 激光切割机所发出的辐射是否会对人体产生危害呢
  • Redis 高可用:主从复制、哨兵模式、集群模式
  • 在GitHub上管理和协作的完全指南
  • git管理工具学习(图解使用git工作流程)
  • 单例模式(Singleton)
  • 2023-08-02 LeetCode每日一题(翻转卡片游戏)
  • JAVAWEB项目--POST完整交互(servlet,axios,JavaScript)
  • 统一观测|借助 Prometheus 监控 ClickHouse 数据库
  • 【Golang】基于录制,自动生成go test接口自动化用例
  • 使用快捷键在Unity中快速锁定和解锁Inspector右上角的锁功能
  • 服务器硬件、部署LNMP动态网站、部署wordpress、配置web与数据库服务分离、配置额外的web服务器
  • 面试总被问高并发负载测试,你真的会么?
  • ARP协议请求
  • 前端小练-仿掘金导航栏
  • PDF.js实现搜索关键词高亮显示效果
  • Linux服务器安装JDK20
  • vue强制刷新的方法
  • Linux下TCP网络服务器与客户端通信程序入门
  • 第九章:SSM整合
  • shell脚本部署springboot
  • 每日一道面试题之Iterator 和 ListIterator 有什么区别?
  • 基于图像形态学处理的停车位检测matlab仿真
  • 【网络编程】同步IO/异步IO
  • 五分钟理解NIO与BIO
  • Python数据可视化工具——Pyecharts
  • cjson常用API使用总结
  • Shell脚本学习-case语句开发rsync服务的脚本
  • 使用docker部署一个jar项目