Jetpack:020-Jetpack导航示例:底部导航栏

本文详细介绍了在Jetpack中使用Compose实现底部导航栏的步骤,包括创建NavController、NavHost和使用Scaffold。通过示例代码和分析,展示了如何在Compose中构建并管理底部导航功能,以及其与传统Fragment/Activity方法的对比。


我们在上一章回中介绍了Jetpack中导航相关的内容,本章回中主要介绍 导航的综合示例:底部导航栏。闲话休提,让我们一起Talk Android Jetpack吧!

1. 概念介绍

我们在前面章回中介绍过底部导航栏的知识,如果有看官忘记的话可以点击这里查看之前的文章,本章回在此基础上添加导航功能。也就是说点击不同的底部导航标签切换到不同的页面。

回想一下,我们在使用Fragment和Activity实现底部导航时的做法:创建一个Activity并且在Activity中包含Fragment容器,通过Fragment容器来切换Fragment,进而实现底部导航功能。大家看完本章回的内容后就回来对比一下哪种方式的导航方便一些。

2. 使用方法

创建底部导航的方法和在compose中使用Navigation库实现导航的方法类似,下面是详细的使用步骤:

  • 创建NavController;
  • 创建NavHost,并且把各个页面添加到容器中;
  • 通过NavController的navigate方法实现各个页面之间的导航;

3. 代码与分析

3.1 示例代码

介绍完创建底部导航的方法后,我们通过具体的示例代码来演示:

fun ExScaffold(
) {
   
   

    //这个NavController主要用来切换底部的导航,只能在这里获取,不能在底部导航的方法中获取,不会导航栏会出现在屏幕上方
    val  naviController = rememberNavController()

    Scaffold(
        modifier = Modifier.background(color = MaterialTheme.colorScheme.primary),
        topBar = {
   
    CustomCenterAppBar()},

        bottomBar = {
   
    BottomNaviBarTemplate(navController = naviController)},

        //控制FAB的位置,只有两种
        floatingActionButtonPosition = FabPosition.End,
        floatingActionButton = {
   
    CustomFAB(snackbarHostState, scope) },
    ) {
   
   innerPadding->
        Column(modifier = Modifier
            .padding
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值