Я добавил Text() внутри правой части topAppBar. TopAppBar, имеющий 3 элемента, заголовок левой задней кнопки в центре и кликабельный текст справа. Но кликабельное событие Texts не срабатывает. То же самое будет работать, если я вынесу текст за TopAppBar. Как добиться кликабельного текста внутри TopAppBar.
TopAppBar(backgroundColor = backgroundColor) {
Row(
modifier = Modifier
.fillMaxWidth()
.padding(5.dp),
horizontalArrangement = Arrangement.Absolute.SpaceAround,
verticalAlignment = Alignment.CenterVertically
) {
Image(
)
Text(
)
Text(
text = "cancel",
modifier = Modifier
.wrapContentWidth()
.padding(end = 16.dp)
.clickable(
enabled = true,
onClick = {
//navigate to different screen
}
),
textAlign = TextAlign.Right
)
}
}
Здесь проблема в том, что текст в TopAppBar не щелкает. Событие щелчка не срабатывает. TopAppBar загружается правильно и видит текст «Отмена».
@user7029573 user7029573 Добро пожаловать в stackoverflow! Если ответ оказался для вас полезным, отметьте его как принятый, нажав галочку слева от ответа.
Пожалуйста, ознакомьтесь с документацией TopAppBar , чтобы узнать, какие параметры он имеет и как его правильно использовать. Кроме того, в вашем случае может пригодиться TextButton.
Вероятно, вы хотите что-то вроде этого:
val context = LocalContext.current
Scaffold(
topBar = {
TopAppBar(
navigationIcon = {
IconButton(
onClick = {
Toast.makeText(context, "Button clicked", Toast.LENGTH_SHORT).show()
}
) {
Icon(imageVector = Icons.Filled.ArrowBack, contentDescription = "Back" )
}
},
title = {
Text(
text = "App Title",
modifier = Modifier
.wrapContentWidth()
.padding(end = 16.dp)
.clickable(
onClick = {
Toast.makeText(context, "Title clicked", Toast.LENGTH_SHORT).show()
}
)
)
},
actions = {
TextButton(
onClick = {
Toast.makeText(context, "Text clicked", Toast.LENGTH_SHORT).show()
}
) {
Text(text = "CANCEL")
}
}
)
}
) {
Box(modifier = Modifier.padding(it)) {}
}
Выход:
Есть ли у вас вообще какие-либо ошибки? Мне кажется, что это
TopAppBar
настроено неправильно.