Цвет фона по умолчанию в Jetpack Compose белый?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Цвет фона по умолчанию в Jetpack Compose белый?

Сообщение Anonymous »

В настоящее время я изучаю Jetpack Compose и Material3 и пытаюсь реализовать экран смены пароля в виде всплывающего окна, занимающего только половину экрана. Несмотря на мои усилия скруглить верхний левый и правый углы, цвет фона по-прежнему остается белым.
введите описание изображения здесь
Потратив целый день безуспешно пытаюсь решить эту проблему, прошу вашего совета. В Android по умолчанию установлен белый цвет фона, если он не указан?

@OptIn(ExperimentalMaterialApi::class)
fun NavGraphBuilder.changePasswordComposable(
navController: NavHostController,
userViewModel: UserViewModel,
) {
composable(
route = Screens.CHANGE_PASSWORD_SCREEN,
) {
var user by remember { mutableStateOf(User()) }

LaunchedEffect(Unit) {
user = userViewModel.getLoggedInUser()
}

val bottomSheetState =
rememberModalBottomSheetState(initialValue = ModalBottomSheetValue.Hidden)
val coroutineScope = rememberCoroutineScope()

ModalBottomSheetLayout(
sheetState = bottomSheetState,
sheetContent = {
ChangePasswordScreen(
onBackClicked = {
coroutineScope.launch {
bottomSheetState.hide()
}
}, onChangePasswordClicked = { newPassword, oldPassword ->
// Handle password change logic
}
)
},
sheetBackgroundColor = Color.Transparent, // Transparent Background
sheetShape = RoundedCornerShape(
topStart = 16.dp, topEnd = 16.dp
),// circle shape
) {
//
Box(modifier = Modifier.fillMaxSize()) {
//
LaunchedEffect(Unit) {
coroutineScope.launch {
bottomSheetState.show()
}
}
}
}
}
}



@Composable
fun ChangePasswordScreen(
onBackClicked: () -> Unit,
onChangePasswordClicked: (String, String) -> Unit
) {
val focusManager = LocalFocusManager.current
var newPassword by remember { mutableStateOf("") }
var oldPassword by remember { mutableStateOf("") }
var showNewPasswordError by remember { mutableStateOf(false) }
var showOldPasswordError by remember { mutableStateOf(false) }

Column(
modifier = Modifier
.background(
backgroundColor,
shape = RoundedCornerShape(topStart = 16.dp, topEnd = 16.dp)
)
.clip(RoundedCornerShape(topStart = 16.dp, topEnd = 16.dp)) //
.fillMaxWidth()
.padding(16.dp)
.verticalScroll(rememberScrollState())
) {
UserInfoField(
focusManager = focusManager,
label = stringResource(id = R.string.new_password),
value = newPassword,
placeholder = stringResource(id = R.string.enter_new_password),
isPassword = true,
onValueChange = {
newPassword = it
showNewPasswordError = it.length < 8
},
showPasswordError = showNewPasswordError,
errorMessage = if (showNewPasswordError) stringResource(
id = R.string.password_too_short
) else ""
)
Spacer(modifier = Modifier.height(16.dp))
UserInfoField(
focusManager = focusManager,
label = stringResource(id = R.string.old_password),
value = oldPassword,
placeholder = stringResource(id = R.string.enter_old_password),
isPassword = true,
onValueChange = {
oldPassword = it
showOldPasswordError = it.length < 8
},
showPasswordError = showOldPasswordError,
errorMessage = if (showOldPasswordError) stringResource(
id = R.string.password_too_short
) else ""
)
Spacer(modifier = Modifier.height(24.dp))
DebounceClickable(
onClick = {
onChangePasswordClicked(newPassword, oldPassword)
}
) {
Button(
onClick = { /* */ },
enabled = newPassword.isNotEmpty() && oldPassword.isNotEmpty() && !showNewPasswordError && !showOldPasswordError,
modifier = Modifier
.fillMaxWidth()
.padding(horizontal = SMALL_PADDING),
colors = androidx.compose.material3.ButtonDefaults.buttonColors(
containerColor = selectedCr
)
) {
Text(
text = stringResource(id = R.string.change_password),
color = Color.White,
fontSize = MEDIUM_FONT_SIZE,
fontWeight = androidx.compose.ui.text.font.FontWeight.Bold
)
}
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/785 ... pose-white
Ответить

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

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

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

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

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