), который обновляется с учетом количества изображений, когда я делаю снимок.
Проблема:
Предварительный просмотр камеры не открывается полностью (прежде чем щелкнуть изображение, посмотрите на нижнюю черную часть. Когда я нажимаю на изображение, оно открывается в полноэкранном режиме.
Каждый раз, когда обновляется SubcomposeAsyncImage , предварительный просмотр камеры меняет композицию и
дает сбой на экране.
У меня есть экран камеры в Jetpack Compose. У него есть еще один ImageView([code]SubcomposeAsyncImage[/code]), который обновляется с учетом количества изображений, когда я делаю снимок. Проблема: [list] [*] Предварительный просмотр камеры не открывается полностью (прежде чем щелкнуть изображение, посмотрите на нижнюю черную часть. Когда я нажимаю на изображение, оно открывается в полноэкранном режиме. [*]Каждый раз, когда обновляется SubcomposeAsyncImage , предварительный просмотр камеры меняет композицию и дает сбой на экране. [/list] Вот код: CameraScreen: [code]@Composable fun CamScreen( navController: NavController, viewModel: CamViewModel = hiltViewModel() ) {
@OptIn(ExperimentalPermissionsApi::class) @Composable fun CameraContent( onTakePhoto: (File) -> Unit, stackUrl: String, stackCount: Int ) { // Camera permission state val cameraPermissionState = rememberPermissionState( android.Manifest.permission.CAMERA )
@OptIn(ExperimentalPermissionsApi::class) @Composable fun CameraPermission(cameraPermissionState: PermissionState) { Column( modifier = Modifier .fillMaxSize() .padding(16.dp) .background(Color.White), verticalArrangement = Arrangement.Center ) { val textToShow = if (cameraPermissionState.status.shouldShowRationale) { // If the user has denied the permission but the rationale can be shown, // then gently explain why the app requires this permission stringResource(id = R.string.camera_permission_rationale) } else { // If it's the first time the user lands on this feature, or the user // doesn't want to be asked again for this permission, explain that the // permission is required stringResource(id = R.string.camera_permission_required) } Text(textToShow, color = Black) Button( onClick = { cameraPermissionState.launchPermissionRequest() }, modifier = Modifier .align(Alignment.CenterHorizontally) .padding(top = 16.dp) ) { Text("Request permission") } } }
@Composable fun CameraScreenPreview( onPhotoSaved: (File) -> Unit, stackUrl: String, stackCount: Int ) { val haptic = LocalHapticFeedback.current val context = LocalContext.current val controller = remember { LifecycleCameraController(context).apply { setEnabledUseCases( CameraController.IMAGE_CAPTURE ) } }
У меня возникла проблема с моим приложением Jetpack Compose, из-за которой NavHost постоянно перекомпоновывает и вызывает зацикливание навигации. Ниже приведена упрощенная версия моего кода, демонстрирующая проблему.
Когда состояние меняется на...
У меня возникла проблема с моим приложением Jetpack Compose, из-за которой NavHost постоянно перекомпоновывает и вызывает зацикливание навигации. Ниже приведена упрощенная версия моего кода, демонстрирующая проблему.
Когда состояние меняется на...
Я делаю это упражнение, чтобы создать приложение для игры в кости.
Это работает, но вот что меня смущает:
Насколько я понимаю, каждый раз, когда я нажимаю на значок Кнопка «Повернуть» запускает перекомпозицию.
Когда я нажимаю кнопку «Повернуть», она...
Я столкнулся с проблемой, с которой не знаю, как справиться. И проблема в том, что я размещаю NavHost внутри Scaffold, что требует от меня использования отступов. Вот фактический код:
Кажется, я не нашел объяснения этому простому случаю.
Что-то простое, например, модель представления, содержащая встречный поток:
class TestCounter : ViewModel() {
private val _counter = MutableStateFlow(0)
val counter = _counter.asStateFlow()...