Я смотрю на способ иметь свой липкий голов с прозрачным фоном, это потому, что у моего фона есть градиент, и мне нужен заголовок, чтобы иметь прозрачный фон. < /p>
воспроизводимый пример < /h2>
@OptIn(ExperimentalFoundationApi::class)
@Composable
fun Example() {
Box(
Modifier.fillMaxSize()
.drawBackgroundGradient()
.clipToBounds()
) {
LazyColumn {
stickyHeader {
Column(
modifier = Modifier
.fillMaxWidth()
.background(Color.Transparent)
.padding(top = 16.dp, bottom = 16.dp)
) {
Card(
modifier = Modifier.fillMaxWidth(),
border = BorderStroke(1.dp, Color.Gray),
shape = RoundedCornerShape(20.dp),
colors = CardDefaults.cardColors(containerColor = Color.Transparent.copy(alpha = 0.7f))
) {
Row(
modifier = Modifier.padding(12.dp),
verticalAlignment = Alignment.CenterVertically
) {
Icon(
modifier = Modifier.padding(end = 16.dp),
painter = rememberVectorPainter(Icons.Filled.Warning),
contentDescription = "Disclaimer icon",
tint = Color.Yellow
)
Text(
text = "Test copy text of banner",
style = TS_Helvetica_400.copy(
lineHeight = 15.sp
),
fontSize = 14.sp,
color = Color.White
)
}
}
}
}
items(fakeList) { item ->
Text(modifier = Modifier.fillMaxWidth(), text = item, color = Color.White)
}
}
}
}
val baseList = listOf("name 1", "name 2", "name 3")
// Create a list of 100 elements by repeating baseList
val fakeList = List(100 / baseList.size) { baseList }.flatten() + baseList.take(100 % baseList.size)
fun Modifier.drawBackgroundGradient(): Modifier {
return this.drawBehind {
val gradientColors =
listOf(Color(0xFF6A66FF).copy(alpha = 0.2f), Color.Transparent)
// Draw the background color
drawRect(color = Color.Black)
// Draw the first radial gradient circle
drawCircle(
brush = Brush.radialGradient(
colors = gradientColors,
center = Offset(size.width * 0.1f, size.height * 0.5f),
radius = 800.dp.toPx()
),
radius = 800.dp.toPx(),
center = Offset(size.width * 0.1f, size.height * 0.5f)
)
// Draw the second radial gradient circle
drawCircle(
brush = Brush.radialGradient(
colors = gradientColors,
center = Offset(size.width * 0.9f, size.height * 0.9f),
radius = 500.dp.toPx()
),
radius = 500.dp.toPx(),
center = Offset(size.width * 0.9f, size.height * 0.9f)
)
}
}
Я пробовал некоторые обходные пути, но они не включают компонент Stickyheader, я знаю, что это экспериментально, но, возможно, есть ли способ, что элементы не отображаются при перетаскивании, а вместо этого вырезают на каком -то штучной контенте?
Text( text = "Test copy text of banner", style = TS_Helvetica_400.copy( lineHeight = 15.sp ), fontSize = 14.sp, color = Color.White ) }
}
} } items(fakeList) { item -> Text(modifier = Modifier.fillMaxWidth(), text = item, color = Color.White) } } } }
val baseList = listOf("name 1", "name 2", "name 3")
// Create a list of 100 elements by repeating baseList val fakeList = List(100 / baseList.size) { baseList }.flatten() + baseList.take(100 % baseList.size)
fun Modifier.drawBackgroundGradient(): Modifier { return this.drawBehind { val gradientColors = listOf(Color(0xFF6A66FF).copy(alpha = 0.2f), Color.Transparent)
// Draw the background color drawRect(color = Color.Black)
// Draw the first radial gradient circle drawCircle( brush = Brush.radialGradient( colors = gradientColors, center = Offset(size.width * 0.1f, size.height * 0.5f), radius = 800.dp.toPx() ), radius = 800.dp.toPx(), center = Offset(size.width * 0.1f, size.height * 0.5f) )
// Draw the second radial gradient circle drawCircle( brush = Brush.radialGradient( colors = gradientColors, center = Offset(size.width * 0.9f, size.height * 0.9f), radius = 500.dp.toPx() ), radius = 500.dp.toPx(), center = Offset(size.width * 0.9f, size.height * 0.9f) ) } } [/code] Я пробовал некоторые обходные пути, но они не включают компонент Stickyheader, я знаю, что это экспериментально, но, возможно, есть ли способ, что элементы не отображаются при перетаскивании, а вместо этого вырезают на каком -то штучной контенте?
Я ищу способ сделать липкий заголовок прозрачным фоном, потому что мой фон имеет градиент, и мне нужно, чтобы заголовок имел прозрачный фон.
Воспроизводимо пример
@OptIn(ExperimentalFoundationApi::class)
@Composable
fun Example() {
Box(...
Я ищу способ сделать липкий заголовок прозрачным фоном, потому что мой фон имеет градиент, и мне нужно, чтобы заголовок имел прозрачный фон.
Воспроизводимо пример
@OptIn(ExperimentalFoundationApi::class)
@Composable
fun Example() {
Box(...
Я попробовал добавить StickyHeader, как предложено в этом ответе. Однако производительность не близка к готовому коду из-за цикла, поскольку мой список немного больше.
Вот моя попытка:
LazyColumn(
reverseLayout = true
) {
val itemCount =...
Я только начинаю программировать, даже основ плохо знаю. Пытаюсь создать приложение из своих собственных ресурсов, и все они более или менее прозрачны. Мне удалось создать окно, в котором фоновое изображение прозрачно, поэтому я могу сохранить...