#android-jetpack-compose
Вопрос:
У меня есть три фона в поле, и это поле содержит горизонтальный пейджер и компонент изображения, который изменяется в соответствии с текущей страницей горизонтального пейджера, но нет анимации, как добавить такую анимацию
https://cdn.dribbble.com/users/1588664/screenshots/8257559/media/d94b36cb7822008df8055c90ca6e2238.mp4
И вот мой предварительный просмотр кода https://drive.google.com/file/d/1i2ix1Xdx-TK2SVPgx8MhFZWfqQnhZcr5/view?usp=sharing
val pagerState = rememberPagerState(pageCount = 3)
val currentIndex = pagerState.currentPage
val currentPageOffset = pagerState.currentPageOffset
val poster = listOf(
R.drawable.red,R.drawable.blue,R.drawable.green
)
Box(modifier = Modifier.fillMaxSize()){
Image(
painter = painterResource(poster[currentIndex]),
contentDescription = null,
contentScale = ContentScale.FillWidth,
modifier = Modifier.fillMaxWidth()
)
HorizontalPager(
state = pagerState,
modifier = Modifier.fillMaxSize()
) { page ->
val maxOffset = 70.dp
val offset = maxOffset * when (page) {
currentIndex -> {
currentPageOffset.absoluteValue
}
currentIndex - 1 -> {
1 currentPageOffset.coerceAtMost(0f)
}
currentIndex 1 -> {
1 - currentPageOffset.coerceAtLeast(0f)
}
else -> {
1f
}
}
Card(
modifier = Modifier
.fillMaxWidth(0.7f)
.fillMaxHeight(0.7f)
.padding(22.dp)
.offset(y = offset),
shape = RoundedCornerShape(30.dp),
elevation = 110.dp
) {}
}
}
Комментарии:
1.Вы уже что — нибудь пробовали? Почему бы тебе не попробовать рассчитать смещение так же, как
currentIndex
currentPageOffset
это сделал я ? Добавьте отпечатки, чтобы увидеть, какие значения эти два параметра принимают во время прокрутки, а затем с уважением рассчитайте смещение вашего изображения2. Я пробовал анимировать его совсем по-другому, и я не могу понять, как это сделать, Здесь нам нужно анимировать оба изображения, выбранное изображение и изображения, которые пользователь перетаскивает, означает -1.0 или 1.0. Я могу анимировать одно изображение, но не другое изображение.
3. Филип, пожалуйста, пожалуйста
4. Это выглядит круто! Поздравляем вас с решением этой проблемы самостоятельно!
5. Я должен поблагодарить тебя за это, большое тебе спасибо 🙂