直播平台开发,Android Studio底部导航栏的实现
直播平台开发,Android Studio底部导航栏的实现
1、activity_main.xml
该界面布局为:BottomNavigationView+fragment。
在BottomNavigationView里,app:menu:底部导航栏按钮菜单。
在fragment里,app:navGraph:关联导航图。
1 | <?xml version= "1.0" encoding= "utf-8" ?><br><androidx.constraintlayout.widget.ConstraintLayout xmlns:android= "http://schemas.android.com/apk/res/android" <br> xmlns:app= "http://schemas.android.com/apk/res-auto" <br> android:id= "@+id/container" <br> android:layout_width= "match_parent" <br> android:layout_height= "match_parent" ><br> <br> <com.google.android.material.bottomnavigation.BottomNavigationView<br> android:id= "@+id/nav_view" <br> android:layout_width= "0dp" <br> android:layout_height= "wrap_content" <br> android:layout_marginStart= "0dp" <br> android:layout_marginEnd= "0dp" <br> android:background= "?android:attr/windowBackground" <br> app:layout_constraintBottom_toBottomOf= "parent" <br> app:layout_constraintLeft_toLeftOf= "parent" <br> app:layout_constraintRight_toRightOf= "parent" <br> app:menu= "@menu/bottom_nav_menu" />//底部的导航按钮<br> <br> <fragment<br> android:id= "@+id/nav_host_fragment_activity_main" <br> android:name= "androidx.navigation.fragment.NavHostFragment" <br> android:layout_width= "match_parent" <br> android:layout_height= "match_parent" <br> app:defaultNavHost= "true" <br> app:layout_constraintBottom_toTopOf= "@id/nav_view" <br> app:layout_constraintLeft_toLeftOf= "parent" <br> app:layout_constraintRight_toRightOf= "parent" <br> app:layout_constraintTop_toTopOf= "parent" <br> app:navGraph= "@navigation/mobile_navigation" />//导航图<br> <br></androidx.constraintlayout.widget.ConstraintLayout> |
2、bottom_nav_menu.xml菜单文件
在该文件里面定义底部的导航按钮,每一个item代表一个导航按钮。最多可显示五个导航按钮,开始系统默认创建3个导航按钮,可根据自己的需要自行添加。
说明:
1 | <br>android:icon<导航按钮显示的图标><br>android:title<导航按钮显示的文字><br><?xml version= "1.0" encoding= "utf-8" ?><br><menu xmlns:android= "http://schemas.android.com/apk/res/android" ><br> <br> <item<br> android:id= "@+id/navigation_home" <br> android:icon= "@mipmap/bottom_btn1" <br> android:title= "账单" /><br> <br> <item<br> android:id= "@+id/navigation_dashboard" <br> android:icon= "@mipmap/bottom_btn2" <br> android:title= "图表" /><br> <br> <item<br> android:id= "@+id/navigation_notifications" <br> android:icon= "@mipmap/bottom_btn3" <br> android:title= "记账" /><br> <item<br> android:id= "@+id/navigation_blank" <br> android:icon= "@mipmap/bottom_btn5" <br> android:title= "我的" /><br> <br></menu> |
3、mobile_navigation.xml
该文件的作用为:定义fragment。
说明:
1 | <br>每一个fragment的id与相应的底部导航按钮id需一致<br>navigation里:app:startDestination<指明开始默认的fragment><br>fragment里:android:name<和它对应的Java类><br>fragment里:android:label<界面顶部标题栏显示的文字><br>fragment里:tools:layout<指明布局文件><br><?xml version= "1.0" encoding= "utf-8" ?><br><navigation xmlns:android= "http://schemas.android.com/apk/res/android" <br> xmlns:app= "http://schemas.android.com/apk/res-auto" <br> xmlns:tools= "http://schemas.android.com/tools" <br> android:id= "@+id/mobile_navigation" <br> app:startDestination= "@+id/navigation_home" > //开始默认显示的fragment<br> <br> <fragment<br> android:id= "@+id/navigation_home" <br> android:name= "com.example.ji_zhang_ben.ui.home.HomeFragment" <br> android:label= "账单" <br> tools:layout= "@layout/fragment_home" /><br> <br> <fragment<br> android:id= "@+id/navigation_dashboard" <br> android:name= "com.example.ji_zhang_ben.ui.dashboard.DashboardFragment" <br> android:label= "图表" <br> tools:layout= "@layout/fragment_dashboard" /><br> <br> <fragment<br> android:id= "@+id/navigation_notifications" <br> android:name= "com.example.ji_zhang_ben.ui.notifications.NotificationsFragment" <br> android:label= "记账" <br> tools:layout= "@layout/fragment_notifications" /><br> <br> <fragment<br> android:id= "@+id/navigation_blank" <br> android:name= "com.example.ji_zhang_ben.ui.blank.BlankFragment" <br> android:label= "我的" <br> tools:layout= "@layout/fragment_blank" /><br></navigation> |
以上就是直播平台开发,Android Studio底部导航栏的实现, 更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2022-03-21 一对一直播源码,在界面上的浮动广告页
2022-03-21 成品直播源码,禁止状态栏受到下滑的影响自动下拉
2022-03-21 直播软件源码,改变button的背景颜色