【发布时间】:2021-10-18 12:47:48
【问题描述】:
在这个应用程序中,我有一个屏幕,您可以在其中输入注释的标题和内容。
屏幕有两个可组合的DetailScreen()和DetailScreenContent。
Detailscreen 有脚手架和 appbars,并调用 DetailScreenContents(),它有两个 TextField 和一个按钮。
我希望用户在这些字段中输入文本,然后按下将文本打包到 NOTE 对象中的按钮。我的问题是,如何将 NOTE 传递给具有回调之类的 DETAILSCREEN() 的上部可组合项= onclick: -> 笔记或其他任何有效的方式?
@Composable
fun DetailScreen(navCtl : NavController, mviewmodel: NoteViewModel){
Scaffold(bottomBar = { TidyBottomBar()},
topBar = { TidyAppBarnavIcon(
mtitle = "",
onBackPressed = {navCtl.popBackStack()},
)
}) {
DetailScreenContent()
}
}
@Composable
fun DetailScreenContent() {
val titleValue = remember { mutableStateOf("")}
val contentValue = remember { mutableStateOf("")}
val endnote by remember{ mutableStateOf(Note(
Title = titleValue.value,
Content = contentValue.value))}
Column(modifier = Modifier.fillMaxSize()) {
OutlinedTextField(value = titleValue.value,
onValueChange = {titleValue.value = it},
singleLine = true,
label = {Text("")}
,modifier = Modifier
.fillMaxWidth()
.padding(start = 3.dp, end = 3.dp),
shape = cardShapes.small
)
OutlinedTextField(value = contentValue.value, onValueChange = {
contentValue.value = it
},
label = {Text("Content")}
,modifier = Modifier
.fillMaxWidth()
.padding(start = 3.dp, end = 3.dp, top = 3.dp)
.height(200.dp),
shape = cardShapes.small,
)
Row(horizontalArrangement = Arrangement.End,
modifier = Modifier.fillMaxWidth()){
Button(onClick = {
/**return the object to the upper composable**/
}, shape = cardShapes.small) {
Text(text = stringResource(R.string.Finish))
}
}
}
【问题讨论】:
标签: android kotlin android-jetpack-compose