Jetpack Compose: фон RoundedCornerShape истекает через дочернюю компоновку в предварительной версииAndroid

Форум для тех, кто программирует под Android
Anonymous
Jetpack Compose: фон RoundedCornerShape истекает через дочернюю компоновку в предварительной версии

Сообщение Anonymous »


Изображение
Я вижу неожиданный красный контур/обрез при предварительном просмотре составного объекта на физическом устройстве (а иногда и при предварительном просмотре), хотя внутренний составной объект должен полностью закрывать фон.
У меня есть блок с красным закругленным фоном, и внутри него Строка с белым закругленным фоном с использованием того же размера и радиуса угла.
Однако при предварительном просмотре на мобильном устройстве я все равно вижу бледные красные изогнутые края, как показано на снимке экрана.

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

@Composable
private fun UiTest() {
Box(
modifier = Modifier
.width(200.dp)
.height(82.dp)
.background(
color = Color.Red,
shape = RoundedCornerShape(24.dp)
)
) {
Row(
modifier = Modifier
.fillMaxSize()
.background(
color = Color.White,
shape = RoundedCornerShape(24.dp)
)
)
}
}
Ожидаемое поведение
Белая строка должна полностью закрывать красный фон, поэтому красный цвет не должен быть виден.
Фактическое поведение
Тонкая красная кривая/контур все еще видна по краям (особенно заметно на реальном устройстве).
Снимок экрана
(прикрепите изображение, которым вы поделились)
Вопрос
  • Почему родительский фон все еще виден, хотя дочерний фон заполняет весь размер?
  • Вызвано ли это сглаживанием, обрезание формы или проблема с рендерингом Compose?
  • Каков правильный способ избежать этого кровотечения при использовании закругленных углов?


Подробнее здесь: https://stackoverflow.com/questions/798 ... composable

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