Текст внутри TopAppBar не щелкает в приложении Android для создания сообщений

Я добавил 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 настроено неправильно.

Iván Garza Bermea 25.06.2024 19:17

Здесь проблема в том, что текст в TopAppBar не щелкает. Событие щелчка не срабатывает. TopAppBar загружается правильно и видит текст «Отмена».

user7029573 26.06.2024 08:24

@user7029573 user7029573 Добро пожаловать в stackoverflow! Если ответ оказался для вас полезным, отметьте его как принятый, нажав галочку слева от ответа.

BenjyTec 04.07.2024 11:23
1
3
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Пожалуйста, ознакомьтесь с документацией 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)) {}
}

Выход:

Другие вопросы по теме

Некоторые строки переведены, хотя файл strings.xml существует только на английском языке
Как обрабатывать запросы на увольнение из диалога, запущенного из Composable, переданного как переменная
Как исправить проблему с KMP. Инициализируйте хотя бы одну цель Kotlin в «composeApp (:composeApp)» или «shared»?
Автоматически прокручивать ленивый столбец вверх, чтобы отображать полную высоту карты при раскрытии
Текст с обводкой или границами в наборе реактивного ранца
Ошибка Kotlin: java.lang.RuntimeException: не удалось найти реализацию для com.example.tutorialfollowing.AppDatabase. AppDatabase_Impl не существует
Hilt 2.44.2 — класс не найден при использовании @AndroidEntryPoint в GlanceAppWidgetReceiver
Ошибка размера анимированной бутылки с водой при составлении реактивного ранца
Предварительный просмотр Jetpack для экрана с параметрами SharedTransitionScope, AnimatedVisibilityScope
Рукоять кинжала: «Невозможно создать экземпляр ViewModel» при использовании внедрения зависимостей

Похожие вопросы