Jetpack Compose中组件自定义(组件封装) 发表于 2025-08-11 | 分类于 android Jetpack Compose中使用相机 前言顶部导航1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162import androidx.compose.foundation.clickableimport androidx.compose.foundation.layout.Boximport androidx.compose.foundation.layout.BoxScopeimport androidx.compose.foundation.layout.Rowimport androidx.compose.foundation.layout.fillMaxWidthimport androidx.compose.foundation.layout.heightimport androidx.compose.foundation.layout.paddingimport androidx.compose.material3.Textimport androidx.compose.runtime.Composableimport androidx.compose.ui.Alignmentimport androidx.compose.ui.Modifierimport androidx.compose.ui.draw.clipimport androidx.compose.ui.graphics.Colorimport androidx.compose.ui.unit.dpimport androidx.compose.ui.unit.spimport com.xhkjedu.zxs_android.common.CommonTheme@Composablepublic fun PageTopBar( title: String, showBack: Boolean = true, backAction: () -> Unit, content: @Composable BoxScope.() -> Unit) { Box( modifier = Modifier .fillMaxWidth() .height(44.dp) .padding(start = 24.dp, end = 24.dp), ) { if (showBack) { Row( modifier = Modifier .align(Alignment.CenterStart) .clip(CommonTheme.CornerXs) .clickable { backAction() }, verticalAlignment = Alignment.CenterVertically ) { IconFont(icon = IconFont.IconFanhui2, size = 18f) Text("返回", fontSize = 18.sp) } } Text( title, modifier = Modifier.align(Alignment.Center), fontSize = 20.sp, color = Color.Black ) Box( modifier = Modifier .align(Alignment.CenterEnd), ) { content() } }} 使用 12345678PageTopBar(title = "教材同步练", backAction = { navController.popBackStack()}) { Row(verticalAlignment = Alignment.CenterVertically) { Text("数学") IconFont(icon = IconFont.IconXiala) }}