Как я могу выровнять содержимое по вертикальному центру в Android Compose ВертикальныйPagerAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как я могу выровнять содержимое по вертикальному центру в Android Compose ВертикальныйPager

Сообщение Anonymous »

Я разрабатываю приложение для Android с использованием Jetpack Compose.
Мне нужно разработать экран.
В нем много карточек с содержимым (например, лента )
Но прокручиваться надо липко. Поэтому я использовал Вертикальный пейджер.
Когда пользователь прокручивает содержимое, содержимое должно прокручиваться только одно за другим.
Проблема в том, что первый элемент размещается в верхней части страницы. 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])
}
Если я установлю вертикальное contentPadding на 120.dp, содержимое будет центрировано.
Поэтому я использую state.canScrollBackward .

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

state.canScrollBackward
означает, что текущая позиция больше 0. (1, 2, 3, ... не 0)
Похоже, что это работает.
Но у него есть два проблема.
  • Когда я прокручиваю индекс от 1 до 0, верхний интерфейс не плавный...
  • Высота устройства не одинакова. Поэтому я не могу установить фиксированный вертикальный contentPadding (120.dp)
Есть ли лучшее решение?

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

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

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

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

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

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