簡體   English   中英

Jetpack Compose BottomNavBar 嗎? 如何使用 bottomNavbar 任何示例?

[英]Is Jetpack Compose BottomNavBar? How can use bottomNavbar any Example?

我正在 android 應用程序中編寫jectpack compose 所以我想使用使用bottomAppbar 從來沒有找到任何例子有人可以幫忙嗎?

使用1.0.0 ,您可以使用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()
    })

在此處輸入圖像描述

是的, jetpack compose支持帶有簡單和FloatingActionButtonBottomAppBar檢查下面的代碼示例,它可以幫助您更多

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 function

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM