我在jetpack撰写中使用了BottomSheet视图,但我想使用BotomSheet锁定屏幕,直到我们单击BotomShets的按钮并在BotomSheet中禁用外部触摸。我怎么做?
我的底单:
@ExperimentalMaterialApi
@Composable
fun BottomSheet(
modifier: Modifier = Modifier,
composable: @Composable () -> Unit,
scope: CoroutineScope
) {
val bottomSheetScaffoldState = rememberBottomSheetScaffoldState(
bottomSheetState = BottomSheetState(BottomSheetValue.Expanded)
)
BottomSheetScaffold(
scaffoldState = bottomSheetScaffoldState,
sheetContent = {
Column(
Modifier
.fillMaxWidth()
.height(200.dp)
.padding(8.dp),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
Button(colors = ButtonDefaults.buttonColors(
backgroundColor = AppColor.brandColor.BLUE_DE_FRANCE,
contentColor = AppColor.neutralColor.DOCTOR
),
shape = RoundedCornerShape(
small
),
onClick = {
scope.launch {
bottomSheetScaffoldState.bottomSheetState.collapse()
}
}) {
}
}
},
sheetPeekHeight = 0.dp,
sheetShape = RoundedCornerShape(topEnd = medium, topStart = medium)
) {
composable()
}
}
可组合函数是一个谷歌地图屏幕
您可以使用 sheetGesturesEnabled =
BottomSheetScaffold
的 false 属性来禁用手势。如果你用一个 var sheetGesturesEnabled by remember {mutableStateOf(true)}
来设置它,你可以随心所欲地切换它。
var sheetGesturesEnabled by remember {mutableStateOf(true)}
BottomSheetScaffold(
scaffoldState = bottomSheetScaffoldState,
sheetGesturesEnabled = sheetGesturesEnabled,
sheetContent = {
},
drawerContent= {
}
)
您可以使用 sheetGesturesEnabled: Boolean = true/false
属性,如果要更改底部工作表可从外部取消或不可取消。
BottomSheetScaffold(
scaffoldState = bottomSheetScaffoldState,
sheetGesturesEnabled = false,
sheetContent = {
...
},
sheetPeekHeight = 0.dp,
sheetShape = RoundedCornerShape(topEnd = medium, topStart = medium)
) {
composable()
}
要获得正确的文档,请使用此链接:底层脚手架
我在jetpack compose中确实有一个要求,即我的脚手架中需要一个底部杆,也需要一个高度可调的底部板。我只能实现其中的任何一个。我不得不用下面的代码牺牲底部的条: 我没有选择在这里使用底部栏,而我可以自由调整纸张的高度。第二种解决方案是使用ModalBottomSheetLayout,我可以在其中添加脚手架并添加底部栏,但无法调整板材的高度。
以下是 BottomNav 实现的概述。该应用程序正确显示底部导航栏,但当选择某个项目时,它会多次调用NavHost。我看到Jetpack撰写样本 https://github.com/android/compose-samples/tree/main/Jetsnack 一个类似的问题。是否有任何解决方法可以避免多次Navhost调用?
可以在Jetpack Compose中进行权重吗?例如,我想以这样一种方式设置它,即一个项目被加权为布局的1/3,而另一个占剩余的2/3。 在XML/ViewGroup样式中,可以使用LinearLayouts和ConstraintLayouts来实现这一点。然而,令我沮丧的是,使用Jetpack Compose似乎是不可能的。 示例: 在ConstraintLayout中,这是按如下方式完成的:
几天来,我一直试图成功地构建我正在进行的项目(使用Jetpack Compose),但当我更新gradle构建插件和其他一些依赖项时,我无法正确运行该项目。有一些gradle版本与dagger-hilt依赖项冲突,我不知道如何修复它。我正在使用Android Studio的金丝雀测试版。 这里还有我所有的gradle构建文件: Gradle构建模块应用程序: Gradle构建(项目层级): 错误:
我想知道什么是喷气背包中的脚手架组成一个BottomAppBar示例任何人都可以帮我
我想根据条件更改我的开始导航片段。我的起始片段可以是片段1或片段2。有没有办法实现它?