【问题标题】:Is Jetpack Compose BottomNavBar? How can use bottomNavbar any Example?Jetpack Compose BottomNavBar 吗?如何使用 bottomNavbar 任何示例?
【发布时间】:2019-10-26 20:01:47
【问题描述】:

我正在 Android 应用程序中处理 jectpack compose。所以我想使用bottomAppbar。从来没有找到任何可以帮助的例子吗?

【问题讨论】:

    标签: android android-jetpack-compose android-bottomappbar


    【解决方案1】:

    使用1.0.x,您可以使用BottomAppBar

    BottomAppBar (backgroundColor = yellow500) {
        IconButton(onClick = { /* doSomething() */ }) {
            Icon(Icons.Filled.Menu,"")
        }
        // The actions should be at the end of the BottomAppBar
        Spacer(Modifier.weight(1f, true))
        IconButton(onClick = { /* doSomething() */ }) {
            Icon(Icons.Filled.Favorite,"")
        }
        IconButton(onClick = { /* doSomething() */ }) {
            Icon(Icons.Filled.Call,"")
        }
    }
    

    使用 FAB:

    val fabShape = CircleShape
    val scaffoldState = rememberScaffoldState()
    val scope = rememberCoroutineScope()
    
    Scaffold(
        scaffoldState = scaffoldState,
        drawerContent = { Text("Drawer content") },
        topBar = { },
        bottomBar = {
            BottomAppBar(cutoutShape = fabShape) {
                IconButton(
                    onClick = {
                      scope.launch { scaffoldState.drawerState.open() }
                    }
                ) {
                    Icon(Icons.Filled.Menu,"")
                }
            }
        },
        floatingActionButtonPosition = FabPosition.Center,
        isFloatingActionButtonDocked = true,
        floatingActionButton = {
            FloatingActionButton(
                shape = fabShape,
                onClick = {}
            ) {
                Icon(Icons.Filled.Add,"")
            }
        }, content = {
            //bodyContent()
        })
    

    【讨论】:

      【解决方案2】:

      是的jetpack compose 支持BottomAppBar 与简单和FloatingActionButton 查看下面的代码示例,它对您有更多帮助

      BottomAppBarWithoutFab

      @Composable
      fun BottomAppBarNoFab(getMyActionImage: () -> Image, getMyNavigationImage: () -> Image) {
          val someActionImage: Image = getMyActionImage()
          val someNavigationImage: Image = getMyNavigationImage()
          val navigationIcon: @Composable() () -> Unit = {
              AppBarIcon(someNavigationImage) { /* doSomething()*/ }
          }
          val actionData = listOf(someActionImage)
          BottomAppBar(
              navigationIcon = navigationIcon,
              actionData = actionData
          ) { actionImage ->
              AppBarIcon(actionImage) { /* doSomething()*/ }
          }
      }
      

      查看BottomAppbarWithoutFab截图

      BottomAppBarWithCutout

      @Composable
      fun BottomAppBarCutoutFab(
          getMyActionImage: () -> Image,
          getMyNavigationImage: () -> Image
      ) {
          val someActionImage: Image = getMyActionImage()
          val someNavigationImage: Image = getMyNavigationImage()
          val navigationIcon: @Composable() () -> Unit = {
              AppBarIcon(someNavigationImage) { /* doSomething()*/}
          }
          val actionData = listOf(someActionImage)
          BottomAppBar(
              navigationIcon = navigationIcon,
              fabConfiguration = BottomAppBar.FabConfiguration(cutoutShape = CircleShape) {
                  FloatingActionButton(
                      color = +themeColor { secondary },
                      icon = +imageResource(R.drawable.ic_add_icon),
                      onClick = { /** doSomething() */ })
              },
              actionData = actionData
          ) { actionImage ->
              AppBarIcon(actionImage) { /* doSomething()*/  }
          }
      }
      

      查看bottomAppbarcutoutFab截图

      查看下面的代码我们如何调用@Compose函数

      Column(mainAxisAlignment = MainAxisAlignment.End) {
              BottomAppBarNoFab(getMyActionImage = {
                  +imageResource(R.drawable.ic_home_icon)
              }, getMyNavigationImage = {
                  +imageResource(R.drawable.ic_heart_icon)
              })
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-09-28
        • 1970-01-01
        • 1970-01-01
        • 2021-04-11
        • 2020-02-23
        • 1970-01-01
        • 1970-01-01
        • 2022-12-18
        相关资源
        最近更新 更多