Jetpack Compose: прозрачный градиент «затухания» в BottomBarAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Jetpack Compose: прозрачный градиент «затухания» в BottomBar

Сообщение Anonymous »

Я хочу добавить блеклый фон нижней панели к созданной мною пользовательской панели навигации.
Он принимает прозрачный цвет и сплошной цвет, но если я хочу разместить там вертикальный градиент, он возвращает только сплошной цвет . Такого поведения не происходит, если я использую его в любом другом компоненте, например Box.
Возможно, это ошибка компонента Scaffold, но я не уверен.
По сути, я хочу добиться того, чтобы у меня была вертикальная прокрутка внутри моего контента в Scaffold, и если я прокручиваю вниз и контент выходит за кнопку buttonBar, он обрезается своим фоном, который должен быть прозрачным вверху и медленно переходить в сплошной цвет. цвет (вот почему я хочу обернуть его Box с вертикальным градиентом). Если я установлю для этого поля значение «Прозрачный», оно станет прозрачным и не обрежет мой контент, но градиент по какой-то причине не поддерживается. Он преобразуется в сплошной цвет независимо от того, какой startY/endY я там установил.
Я использую эту технику с вертикальным градиентом в фоновых компонентах экрана, где нижний компонент имеет блеклый край, и он работает без каких-либо проблем. . Просто если он используется в нижней панели Scaffold, он игнорируется.

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

val backgroundColor = Brush.verticalGradient(
colors = listOf(
Color.Transparent,
tabColors.backgroundBottom,
),
startY = 0f,
endY = 50f,
tileMode = TileMode.Clamp,
)

Scaffold (
bottomBar = {
if (isTabBarVisible) {
Box(
modifier = Modifier
.fillMaxWidth()
.background(backgroundColor)
.padding(16.dp)
) {
TabBar(
navController = navController,
)
}
}
}
) { innerPadding ->
NavHost(
modifier = Modifier.padding(innerPadding),
navController = navController,
startDestination = Screen.SplashData,
) {
... navigation to screens
}
}
Вот визуальное представление того, чего я хочу достичь.
Белый == Прозрачный
Прокручиваемый контент = = Содержимое, отображаемое NavHost (составные экраны с жизненным циклом)
Фон «Fade» должен быть частью TabBar, поскольку существует контент (экраны), где нижняя панель навигации скрыта, и я не хочу этого делать там исчезло.
Изображение

Вот как это выглядит сейчас, если я передаю туда вертикальный градиент (он принимает непрозрачный цвет как сплошной), который вызывает обрезку прокручиваемого содержимого за панелью вкладок (нижняя панель).
Изображение


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

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

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

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

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

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