StackCard с JetPack ComposeAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 StackCard с JetPack Compose

Сообщение Anonymous »

Я работаю над разработкой экрана, где при прокрутке некоторых карт они должны сложить сверху. Я почти там, но я сталкиваюсь с проблемой: когда карты достигают конца экрана, они почти складываются, а затем исчезают. Что мне нужно, чтобы они оставались сложенными.
Может ли кто -нибудь помочь мне определить, что не так с моим кодом? >
@Composable
fun CardView(color: Color) {
Card(
modifier = Modifier
.fillMaxWidth()
.height(500.dp),
shape = RoundedCornerShape(15.dp),
elevation = CardDefaults.cardElevation(defaultElevation = 5.dp),
colors = CardDefaults.cardColors(
containerColor = Color.Blue
)
) {
Box(
modifier = Modifier
.fillMaxSize()
.background(color)
)
}
}

@Composable
fun HomeView() {
val scrollState = rememberScrollState()
val color = listOf(
Color.Blue,
Color.Red,
Color.Gray,
Color.Green
)
Column(
modifier = Modifier
.fillMaxSize()
.verticalScroll(scrollState)
.padding(top = 50.dp)
) {
repeat(4) { index ->
var cardY by remember { mutableStateOf(0f) }
var cardHeight by remember { mutableStateOf(0f) }

Box(
modifier = Modifier
.offset(y = (-15).dp)
.onGloballyPositioned { coordinates ->
cardY = coordinates.positionInWindow().y
cardHeight = coordinates.size.height.toFloat()
}
.graphicsLayer {
val minY = if (cardY < 0) -cardY else 0f

val maximumYaxis = cardY + cardHeight
val height = 200f
val progressCard = if (minY == 0f) {
0f
} else {
(1f - (maximumYaxis / height)).coerceIn(0f, 1f)
}

val scaleValue = 1f - (progressCard * 0.1f)
scaleX = scaleValue
scaleY = scaleValue

translationY = minY + (-progressCard * 20f)

}
) {
CardView(color[index])
}
}
}
}
< /code>
Как я хочу, чтобы он работал. : //i.sstatic.net/8rkbwstk.png "/>


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

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

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

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

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

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