Jetpack составить перекомпоноватьAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Jetpack составить перекомпоновать

Сообщение Anonymous »

У меня проблема, мне нужно понять, как ее решить.
У меня есть кнопка внутри фрагмента, которая открывает наложение создания.

Код: Выделить всё

    private fun onClicked() {
binding.composeView.setContent {
cashDialogComposableView()
}
}
Я хочу создать представление составления, которое обрабатывает сами состояния наложения. Нет необходимости в чем-либо, чтобы вызвать это наложение так же просто, как вызов этой строки CashDialogComposableView и передать модель наложения .
И вот код экрана создания сообщения:

Код: Выделить всё

@Composable
fun cashDialogComposableView() {
val cashDialogViewModel: CashDialogViewModel = viewModel()
cashDialogViewModel.changeCashDialogVisibility(true)

when (cashDialogViewModel.cashDialogVisibility.collectAsState().value) {
true -> {
cashDialogScreen(
cashDialogModel = CashDialogModel(
title = "",
subtitle = "",
confirmButtonAction = {},
cancelButtonAction = {},
icon = R.drawable.error_icon
)
) {
cashDialogViewModel.changeCashDialogVisibility(false)
}
}
false -> {
return
}
}
}
Когда пользователь нажимает кнопку, он вызывает этот метод... и первое состояние истинно... и когда пользователь отклоняет наложение это изменит состояние на false, и наложение скроется. и когда пользователь нажимает еще раз, первая строка меняет состояние на true.. но этого не происходит.. происходит то, что происходит, когда пользователь нажимает кнопку «Отклонить изменение состояния», а затем экран перекомпоновывается и снова вызывает CashDialogViewModel.changeCashDialogVisibility(true) < /code> эту строку, чтобы после того, как наложение было скрыто, он снова показывался.
Я пробовал много вещей, таких как LaunchedEffect и `DisposableEffect.
Как решить эту проблему?

Подробнее здесь: https://stackoverflow.com/questions/778 ... omposition
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»