[英]How to make a preview of a dialog in jetpack compose?
我有这个代码:
@Composable
fun SomeDialog() {
Dialog(onDismissRequest = { }, properties = DialogProperties()) {
....
}
}
@Preview(showBackground = true)
@Composable
fun SomeDialogPreview() {
MyTherapyPreviewTheme {
Scaffold {
SomeDialog()
}
}
}
我预计此预览将生成类似于其他可组合函数的预览,但我只在预览中看到一个白色矩形(纯 Scaffold)。
如何以正确的方式生成对话框预览? 或者我只能在单独的函数中预览对话框的内容?
在文档中它指出只有 AlertDialog 支持可组合功能,这就是您无法看到预览的原因。
您可以在此处查看更多详细信息。
@MihaiBC 是关于为什么你不能预览(还)的地方。 同时,您可以通过将对话框内容提取到单独的可组合中来预览对话框内容。
例如,如果您的对话框如下所示:
@Composable
fun SomeDialog() {
Dialog(onDismissRequest = { }, properties = DialogProperties()) {
Card(modifier = Modifier.fillMaxWidth()) {
.....
}
}
}
然后提取内容如下:
@Composable
fun SomeDialog() {
Dialog(onDismissRequest = { }, properties = DialogProperties()) {
SomeDialogContent()
}
}
@Composable
fun SomeDialogContent(){
Card(modifier = Modifier.fillMaxWidth()) {
.....
}
}
最后用一些填充预览这个SomeDialogContent
:
@Preview
@Composable
fun PreviewSomeDialogContent() {
AppTheme {
Box(
modifier = Modifier
.fillMaxSize()
.background(MaterialTheme.colors.background)
.padding(20.dp),
contentAlignment = Alignment.Center,
) {
SomeDialogContent({})
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.