Мне нужно разработать экран.
В нем много карточек с содержимым (например, лента )
Но прокручиваться надо липко. Поэтому я использовал Вертикальный пейджер.
Когда пользователь прокручивает содержимое, содержимое должно прокручиваться только одно за другим.
Проблема в том, что первый элемент размещается в верхней части страницы. ui.
Но, начиная со второго контента, его необходимо размещать в центре экрана следующим образом:

Я могу использовать приведенный ниже код, и он выглядит нормально.
Код: Выделить всё
val state = rememberPagerState()
VerticalPager(
state = state,
contentPadding = PaddingValues(
vertical = if (state.canScrollBackward) 120.dp else 0.dp
),
pageSize = PageSize.Fixed(328.dp),
) { idx ->
FeedUi(feeds[idx])
}
Поэтому я использую state.canScrollBackward .
Код: Выделить всё
state.canScrollBackwardПохоже, что это работает.
Но у него есть два проблема.
- Когда я прокручиваю индекс от 1 до 0, верхний интерфейс не плавный...
- Высота устройства не одинакова. Поэтому я не могу установить фиксированный вертикальный contentPadding (120.dp)
Подробнее здесь: https://stackoverflow.com/questions/770 ... ticalpager
Мобильная версия