Код: Выделить всё
val showGpsDisabledDialog by viewModel.showGpsDisabledDialog.collectAsState()
Log.d(TAG, showGpsDisabledDialog.toString())
if (showGpsDisabledDialog) {
Log.d(TAG, "dialog")
val context = LocalContext.current
BasicAlertDialog(
onDismissRequest = {
Log.d(TAG, "dismiss")
viewModel.closeGpsDisabledDialog()
},
) {
Text("dialog")
}
}
Код: Выделить всё
@HiltViewModel
class MapViewModel @Inject constructor(): ViewModel() {
private var _showGpsDisabledDialog: MutableStateFlow = MutableStateFlow(true)
val showGpsDisabledDialog: StateFlow get() = _showGpsDisabledDialog.asStateFlow()
fun openGpsDisabledDialog() {
if(!_showGpsDisabledDialog.value)
_showGpsDisabledDialog.value = true
}
fun closeGpsDisabledDialog() {
if(_showGpsDisabledDialog.value)
_showGpsDisabledDialog.value = false
}
}
Я пытался использовать LaunchedEffect, чтобы установить эти флаги (поэтому они неверны до того, как компонуемая визуализация)
Я попытался установить для них значение true в модели представления, используя задержку.
Я понял, что во всех этих случаях диалоговое окно отображается дважды, отображая простой диалог с текстом, и заметил что есть два текста перекрытие
Подробнее здесь: https://stackoverflow.com/questions/793 ... ying-twice
Мобильная версия