ПросмотрПейджер2
Последнее обновление | Стабильный выпуск | Кандидат на выпуск | Бета-версия | Альфа-релиз |
---|---|---|---|---|
14 мая 2024 г. | 1.1.0 | - | - | - |
Зависимости AndroidX
Чтобы использовать ViewPager2
, добавьте следующую зависимость AndroidX в файл build.gradle
вашего проекта:
классный
dependencies { implementation "androidx.viewpager2:viewpager2:1.1.0" }
Котлин
dependencies { implementation("androidx.viewpager2:viewpager2:1.1.0") }
Обратная связь
Ваши отзывы помогают сделать Jetpack лучше. Дайте нам знать, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку со звездочкой.
Дополнительную информацию см . в документации по системе отслеживания проблем .
Версия 1.1.0
Версия 1.1.0
14 мая 2024 г.
Выпущен androidx.viewpager2:viewpager2:1.1.0
. Версия 1.1.0 содержит эти коммиты .
Важные изменения с версии 1.0.0
- Исправляет сбои при использовании с RecyclerView
1.3.1-rc01
или выше. -
ViewPager2
теперь правильно заполняетCollectionInfo
иCollectionItemInfo
, которые RecyclerView1.2.0-alpha02
и выше больше не заполняются по умолчанию. - Добавлен интерфейс
FragmentTransactionCallback
для прослушивания изменений жизненного цикла фрагмента, которые происходят внутриFragmentStateAdapter
. - Исправлена проблема
FragmentStateAdapter
с начальной видимостью меню фрагмента при добавлении фрагмента вFragmentManager
. - Исправлена отправка вставок окон: все страницы теперь имеют одинаковые вставки. Из-за того, что
WindowInsets
отправляются в старых версиях API (< API 30), которые могут препятствовать доступности вставок для одноуровневых представлений, вы должны согласиться на это исправление черезWindowInsetsApplier.install(viewPager2)
, если вы хотите применять вставки на устройствах < API 30. .
Версия 1.1.0-rc01
1 мая 2024 г.
androidx.viewpager2:viewpager2:1.1.0-rc01
выпущен без каких-либо заметных изменений по сравнению с версией 1.1.0-beta02. Версия 1.1.0-rc01 содержит эти коммиты .
Версия 1.1.0-beta02
24 мая 2023 г.
Выпущен androidx.viewpager2:viewpager2:1.1.0-beta02
. Версия 1.1.0-beta02 содержит эти коммиты.
Изменения API
- В
FragmentTransactionCallback
добавлены обратные вызовы для сохранения состояния фрагмента. ( I45b90 ) -
ViewPager2
теперь больше не пытается исправить некорректную отправкуWindowInsets
старых версий API (< 30), поскольку само исправление может быть вредным для братьев и сестерViewPager2
. Исправление все еще доступно, но оно стало добровольным, поэтому разработчики могут принимать решение в каждом конкретном случае. Включите исправление, вызвавWindowInsetsApplier.install(viewPager2))
. ( Ic9a85 )
Исправления ошибок
- Устраните проблемы совместимости с более новыми версиями
RecyclerView
. Пользователям этой версииViewPager2
следует обновиться как минимум доRecyclerView
1.3.1-rc01.
Версия 1.1.0-бета01
4 августа 2021 г.
Выпущен androidx.viewpager2:viewpager2:1.1.0-beta01
. Версия 1.1.0-beta01 содержит эти коммиты.
Изменения API
Обновите AndroidX для использования Kotlin 1.4 ( Id6471 , b/165307851 , b/165300826 )
Перейти к настройке Java 8 для всех библиотек Androidx ( 2923f39 ).
Исправления ошибок
- Исправлена отправка вставок окон, все страницы теперь имеют одинаковые вставки. ( I47fef )
Версия 1.1.0-альфа01
1 апреля 2020 г.
Выпущен androidx.viewpager2:viewpager2:1.1.0-alpha01
. Версия 1.1.0-alpha01 содержит эти коммиты.
Этот выпуск сопровождает изменение в RecyclerView 1.2.0-alpha02 путем заполнения CollectionInfo
и CollectionItemInfo
, которые RecyclerView
больше не предоставляет по умолчанию. При обновлении до RecyclerView 1.2.0-alpha02
также обновите ViewPager2
чтобы предотвратить ухудшение доступности.
Новые возможности
- Добавлен интерфейс
FragmentTransactionCallback
для прослушивания изменений жизненного цикла фрагмента, которые происходят внутриFragmentStateAdapter
. ( Ибда77 )
Исправления ошибок
- Исправлена проблема
FragmentStateAdapter
с начальной видимостью меню фрагмента при добавлении фрагмента вFragmentManager
. ( I9d2ff , б/144442240 )
Версия 1.0.0
Версия 1.0.0
20 ноября 2019 г.
androidx.viewpager2:viewpager2:1.0.0
выпущен без изменений по сравнению с версией 1.0.0-rc01. Версия 1.0.0 содержит эти коммиты .
Основные особенности версии 1.0.0
- Улучшения по сравнению с предыдущей реализацией ViewPager :
- Поддержка макета RTL (справа налево)
- Поддержка вертикальной ориентации
- Надежная поддержка
Fragment
(включая обработку изменений в базовой коллекцииFragment
) - Анимация изменения набора данных (включая поддержку
DiffUtil
)
- Легкий переход от предыдущей реализации
ViewPager
(паритет API, где это возможно). См. руководство по миграции и пример приложения .
См. руководство по использованию ViewPager2 для перемещения между фрагментами.
Версия 1.0.0-rc01
23 октября 2019 г.
androidx.viewpager2:viewpager2:1.0.0-rc01
выпущен без изменений с 1.0.0-beta05
. Версия 1.0.0-rc01 содержит эти коммиты .
Версия 1.0.0-бета05
9 октября 2019 г.
Выпущен androidx.viewpager2:viewpager2:1.0.0-beta05
. Версия 1.0.0-beta05 содержит эти коммиты .
Исправления ошибок
- Исправлен запрос
requestFocus
на странице за пределами экрана, вызывающий изменение страницы. Поведение теперь соответствует исходному ViewPager. ( б / 140656866 ) - Исправлена ошибка, из-за которой
focus
оставался на странице за кадром после смены страницы. Фокус теперь очищается при смене страницы. ( б / 140656866 ) - Исправлен порядок транзакций паузы/возобновления
Fragment
при смене страницы (теперь мы всегда приостанавливаем старый основной элемент перед возобновлением нового). ( б / 139489059 ) - Исправление для
canScrollHorizontally(int)
иcanScrollVertically(int)
— теперь они возвращают, может ли ViewPager2 прокручиваться в заданном направлении. ( б / 141848404 ) - Исправлена проблема в SwipeRefreshLayout для лучшей работы с ViewPager2.
Версия 1.0.0-beta04
5 сентября 2019 г.
Выпущен androidx.viewpager2:viewpager2:1.0.0-beta04
. Коммиты, включенные в эту версию, можно найти здесь .
Исправления ошибок
- Исправлена проблема с крайним регистром
FragmentStateAdapter
с обратным стекомFragment
. ( б / 139095195 ) - Исправлена ошибка
EditText
с определенными конфигурациями атрибутов, приводившая к прокрутке/переходу страницы при вводе/фокусе. ( б / 138044582 , б / 139432498 ) - Исправлена проблема с экземплярами
ItemDecoration
и обходной путь для позиционирования индикатора чрезмерной прокрутки. ( б / 139012032 ) - Ряд проблем был исправлен в других компонентах для лучшей работы с
ViewPager2
: RecyclerView , NestedScrollView и Navigation .
Версия 1.0.0-бета03
7 августа 2019 г.
Выпущен androidx.viewpager2:viewpager2:1.0.0-beta03
. Коммиты, включенные в эту версию, можно найти здесь .
Исправления ошибок
- Исправлена проблема
FragmentStateAdapter
с временным состояниемFragment
. б/134246546 - Исправлены проблемы
currentItem
иscrollState
, когда набор данных изменяется во время плавной прокрутки (устранены крайние случаи). б/137642608 - Исправлена анимация
PageTransformer
(включаяMarginPageTransformer
), конфликтующая с анимацией изменения набора данных. б/134658996 - Исправлена анимация плавной прокрутки в больших наборах данных (предел целочисленного значения
float
). б/134858960
Версия 1.0.0-бета02
19 июля 2019 г.
Выпущен androidx.viewpager2:viewpager2:1.0.0-beta02
. Коммиты, включенные в эту версию, можно найти здесь .
Исправления ошибок
- Удалена непреднамеренная зависимость jacoco, появившаяся в
1.0.0-beta01
. ( б / 137782951 )
Версия 1.0.0-бета01
17 июля 2019 г.
Выпущен androidx.viewpager2:viewpager2:1.0.0-beta01
. Коммиты, включенные в эту версию, можно найти здесь .
Исправления ошибок
- Исправлен сбой
ViewPager2.updateCurrentItem
при прокрутке и обновлении набора данных. - Исправлен сбой
NullPointerException
, связанный сViewPager2.isLayoutRtl
-
TOUCH_SLOP_PAGING
теперь сенсорный экран по умолчанию. - События
OnPageChangeCallback
исправлены для пустых адаптеров (страница0
вместо-1
для проверки четности сViewPager1
)
Известные проблемы
- Мы все еще работаем над оставшимися открытыми проблемами перед переходом на стабильную версию.
Версия 1.0.0-альфа06
2 июля 2019 г.
Выпущен androidx.viewpager2:viewpager2:1.0.0-alpha06
. Коммиты, включенные в эту версию, можно найти здесь .
Это наша последняя запланированная альфа-версия перед заморозкой API и переходом на бета-версию. Пожалуйста, оставьте нам отзыв об API.
Новые возможности
- Основы улучшения доступности:
ACTION_PAGE_RIGHT
,ACTION_PAGE_DOWN
и т. д.
Изменения API
-
FragmentStateAdapter
: неосновной элементFragment
ограничен значениемSTARTED
, а для ихmenuVisibility
установлено значение false. -
PageTransformer
,MarginPageTransformer
,CompositePageTransformer
: документация для фиксированнойposition
.
Исправления ошибок
- Исправлен
currentItem
после изменения набора данных/изменения адаптера. - Исправлена проблема
MarginPageTransformer
сoffscreenPageLimit
. - Исправлено поведение специальных возможностей в режиме
FakeDrag
.
Версия 1.0.0-альфа05
5 июня 2019 г.
Выпущен androidx.viewpager2:viewpager2:1.0.0-alpha05
. Коммиты, включенные в эту версию, можно найти здесь .
Новые возможности
-
ItemDecorator
представлен с поведением, соответствующимRecyclerView
. - Представлен
MarginPageTransformer
, обеспечивающий возможность создавать пространство между страницами (за пределами вставки страницы). -
CompositePageTransformer
представлен для обеспечения возможности объединения несколькихPageTransformer
.
Изменения API
- Метод
FragmentStateAdapter#getItem
переименован вFragmentStateAdapter#createFragment
— предыдущее имя метода оказалось источником ошибок в прошлом. - Значение
OFFSCREEN_PAGE_LIMIT_DEFAULT
изменено с0
на-1
. Нет необходимости изменять код клиента, если используется константаOFFSCREEN_PAGE_LIMIT_DEFAULT
.
Исправления ошибок
- Исправлено поведение
getCurrentItem()
, когдаSCROLL_STATE_SETTLING
прерывается перетаскиванием в противоположном направлении. - Проблемы с загрузчиком классов
FragmentStateAdapter
устраненные в контексте «Не сохранять действия». - Улучшена документация
setOffscreenPageLimit
.
Версия 1.0.0-альфа04
7 мая 2019 г.
Выпущен androidx.viewpager2:viewpager2:1.0.0-alpha04
. Коммиты, включенные в эту версию, можно найти здесь .
Новые возможности
-
offscreenPageLimit
: позволяет жестко контролировать количество страницView
илиFragment
, хранящихся в иерархии представлений.
Изменения API
- Атрибуты
orientation
иisUserScrollable
больше не являются частьюSavedState
- Методы
saveState
иrestoreState
стали окончательными вFragmentStateAdapter
- Аннотации
ViewPager2.Orientation
иViewPager2.ScrollState
сделаны закрытыми
Исправления ошибок
-
SavedState
: исправлена проблема с восстановлением при уничтожении/воссозданииActivity
. -
SavedState
: отложенное восстановление до установки адаптера. -
OnPageChangeCallback
: исправлены незначительные крайние случаи.
Версия 1.0.0-альфа03
3 апреля 2019 г.
Выпущен androidx.viewpager2:viewpager2:1.0.0-alpha03
. Коммиты, включенные в эту версию, можно найти здесь .
Новые возможности
- Возможность программной прокрутки ViewPager2:
fakeDragBy(offsetPx)
.
Изменения API
-
FragmentStateAdapter
теперь требует объектаLifecycle
. Добавлены два служебных конструктора для получения его от хостаFragmentActivity
или хостаFragment
.
Исправления ошибок
- Многочисленные исправления поддержки
Fragment
:- обработка обновлений набора данных в свернутом виде или во время поворота экрана;
- удаление ненужных фрагментов после ротации;
- удаление сохраненного состояния удаленных элементов.
-
PageChangeCallback
: исправлен расчет смещения страницы для страниц с полями.
Версия 1.0.0-альфа02
13 марта 2019 г.
Выпущен androidx.viewpager2:viewpager2:1.0.0-alpha02
. Полный список коммитов, включённых в эту версию, можно найти здесь .
Новые возможности
- Возможность отключить пользовательский ввод (
setUserInputEnabled
,isUserInputEnabled
)
Изменения API
- Финальный класс ViewPager2
Исправления ошибок
- Исправления стабильности
FragmentStateAdapter
Версия 1.0.0-альфа01
7 февраля 2019 г.
Выпущен androidx.viewpager2:viewpager2 1.0.0-alpha01
. Это первый выпуск ViewPager2.
Новые возможности
- По сравнению со своим предшественником
android.support.v4.view.ViewPager
(VP1):- Поддержка макета справа налево (RTL).
- Поддержка вертикальной ориентации
-
notifyDataSetChanged
полностью функционален (устранены ошибки VP1)
Изменения API
-
FragmentStateAdapter
заменяетFragmentStatePagerAdapter
-
RecyclerView.Adapter
заменяетPagerAdapter
-
registerOnPageChangeCallback
заменяетaddPageChangeListener
Известные проблемы
- клипТоПаддинг
- нет фейкаПеретащить
- JavaDoc
- вложенная прокрутка параллельно ориентации
- нет контроля за пределами экрана
- нужна лучшая интеграция TabLayout
- нет параметра ширины страницы (принудительно 100%/100%)
- преобразователь страниц: нет выбора аппаратного/программного уровня; нет обратного порядка рисования
- сохранять текущий элемент видимым при вставке страницы перед текущей
- навигация с клавиатуры требует доработки
- Ожидаются улучшения стабильности и производительности
FragmentStateAdapter
ПросмотрПейджер2
Последнее обновление | Стабильный выпуск | Кандидат на выпуск | Бета-версия | Альфа-релиз |
---|---|---|---|---|
14 мая 2024 г. | 1.1.0 | - | - | - |
Зависимости AndroidX
Чтобы использовать ViewPager2
, добавьте следующую зависимость AndroidX в файл build.gradle
вашего проекта:
классный
dependencies { implementation "androidx.viewpager2:viewpager2:1.1.0" }
Котлин
dependencies { implementation("androidx.viewpager2:viewpager2:1.1.0") }
Обратная связь
Ваши отзывы помогают сделать Jetpack лучше. Дайте нам знать, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку со звездочкой.
Дополнительную информацию см . в документации по системе отслеживания проблем .
Версия 1.1.0
Версия 1.1.0
14 мая 2024 г.
Выпущен androidx.viewpager2:viewpager2:1.1.0
. Версия 1.1.0 содержит эти коммиты .
Важные изменения с версии 1.0.0
- Исправляет сбои при использовании с RecyclerView
1.3.1-rc01
или выше. -
ViewPager2
теперь правильно заполняетCollectionInfo
иCollectionItemInfo
, которые RecyclerView1.2.0-alpha02
и выше больше не заполняются по умолчанию. - Добавлен интерфейс
FragmentTransactionCallback
для прослушивания изменений жизненного цикла фрагмента, которые происходят внутриFragmentStateAdapter
. - Исправлена проблема
FragmentStateAdapter
с начальной видимостью меню фрагмента при добавлении фрагмента вFragmentManager
. - Исправлена отправка вставок окон: все страницы теперь имеют одинаковые вставки. Из-за того, что
WindowInsets
отправляются в старых версиях API (< API 30), которые могут препятствовать доступности вставок для одноуровневых представлений, вы должны согласиться на это исправление черезWindowInsetsApplier.install(viewPager2)
если вы хотите применять вставки на устройствах с < API 30 .
Версия 1.1.0-rc01
1 мая 2024 г.
androidx.viewpager2:viewpager2:1.1.0-rc01
выпущен без каких-либо заметных изменений по сравнению с версией 1.1.0-beta02. Версия 1.1.0-rc01 содержит эти коммиты .
Версия 1.1.0-beta02
24 мая 2023 г.
Выпущен androidx.viewpager2:viewpager2:1.1.0-beta02
. Версия 1.1.0-beta02 содержит эти коммиты.
Изменения API
- В
FragmentTransactionCallback
добавлены обратные вызовы для сохранения состояния фрагмента. ( I45b90 ) -
ViewPager2
теперь больше не пытается исправить некорректную отправкуWindowInsets
старых версий API (< 30), поскольку само исправление может быть вредным для братьев и сестерViewPager2
. Исправление все еще доступно, но оно стало добровольным, поэтому разработчики могут принимать решение в каждом конкретном случае. Включите исправление, вызвавWindowInsetsApplier.install(viewPager2))
. ( Ic9a85 )
Исправления ошибок
- Устраните проблемы совместимости с более новыми версиями
RecyclerView
. Пользователям этой версииViewPager2
следует обновиться как минимум доRecyclerView
1.3.1-rc01.
Версия 1.1.0-бета01
4 августа 2021 г.
Выпущен androidx.viewpager2:viewpager2:1.1.0-beta01
. Версия 1.1.0-beta01 содержит эти коммиты.
Изменения API
Обновите AndroidX для использования Kotlin 1.4 ( Id6471 , b/165307851 , b/165300826 )
Перейти к настройке Java 8 для всех библиотек Androidx ( 2923f39 ).
Исправления ошибок
- Исправлена отправка вставок окон, все страницы теперь имеют одинаковые вставки. ( I47fef )
Версия 1.1.0-альфа01
1 апреля 2020 г.
Выпущен androidx.viewpager2:viewpager2:1.1.0-alpha01
. Версия 1.1.0-alpha01 содержит эти коммиты.
Этот выпуск сопровождает изменение в RecyclerView 1.2.0-alpha02 путем заполнения CollectionInfo
и CollectionItemInfo
, которые RecyclerView
больше не предоставляет по умолчанию. При обновлении до RecyclerView 1.2.0-alpha02
также обновите ViewPager2
чтобы предотвратить ухудшение доступности.
Новые возможности
- Добавлен интерфейс
FragmentTransactionCallback
для прослушивания изменений жизненного цикла фрагмента, которые происходят внутриFragmentStateAdapter
. ( Ибда77 )
Исправления ошибок
- Исправлена проблема
FragmentStateAdapter
с начальной видимостью меню фрагмента при добавлении фрагмента вFragmentManager
. ( I9d2ff , б/144442240 )
Версия 1.0.0
Версия 1.0.0
20 ноября 2019 г.
androidx.viewpager2:viewpager2:1.0.0
выпущен без изменений по сравнению с версией 1.0.0-rc01. Версия 1.0.0 содержит эти коммиты .
Основные особенности версии 1.0.0
- Улучшения по сравнению с предыдущей реализацией ViewPager :
- Поддержка макета RTL (справа налево)
- Поддержка вертикальной ориентации
- Надежная поддержка
Fragment
(включая обработку изменений в базовой коллекцииFragment
) - Анимация изменения набора данных (включая поддержку
DiffUtil
)
- Легкий переход от предыдущей реализации
ViewPager
(паритет API, где это возможно). См. руководство по миграции и пример приложения .
См. руководство по использованию ViewPager2 для перемещения между фрагментами.
Версия 1.0.0-rc01
23 октября 2019 г.
androidx.viewpager2:viewpager2:1.0.0-rc01
выпущен без изменений с 1.0.0-beta05
. Версия 1.0.0-rc01 содержит эти коммиты .
Версия 1.0.0-бета05
9 октября 2019 г.
Выпущен androidx.viewpager2:viewpager2:1.0.0-beta05
. Версия 1.0.0-beta05 содержит эти коммиты .
Исправления ошибок
- Исправлен запрос
requestFocus
на странице за пределами экрана, вызывающий изменение страницы. Поведение теперь соответствует исходному ViewPager. ( б / 140656866 ) - Исправлена ошибка, из-за которой
focus
оставался на странице за кадром после смены страницы. Фокус теперь очищается при смене страницы. ( б / 140656866 ) - Исправлен порядок транзакций паузы/возобновления
Fragment
при смене страницы (теперь мы всегда приостанавливаем старый основной элемент перед возобновлением нового). ( б / 139489059 ) - Исправление для
canScrollHorizontally(int)
иcanScrollVertically(int)
— теперь они возвращают, может ли ViewPager2 прокручиваться в заданном направлении. ( б / 141848404 ) - Исправлена проблема в SwipeRefreshLayout для лучшей работы с ViewPager2.
Версия 1.0.0-beta04
5 сентября 2019 г.
Выпущен androidx.viewpager2:viewpager2:1.0.0-beta04
. Коммиты, включенные в эту версию, можно найти здесь .
Исправления ошибок
- Исправлена проблема с крайним регистром
FragmentStateAdapter
с обратным стекомFragment
. ( б / 139095195 ) - Исправлена ошибка
EditText
с определенными конфигурациями атрибутов, приводившая к прокрутке/переходу страницы при вводе/фокусе. ( б / 138044582 , б / 139432498 ) - Исправлена проблема с экземплярами
ItemDecoration
и обходной путь для позиционирования индикатора чрезмерной прокрутки. ( б / 139012032 ) - Ряд проблем был исправлен в других компонентах для лучшей работы с
ViewPager2
: RecyclerView , NestedScrollView и Navigation .
Версия 1.0.0-бета03
7 августа 2019 г.
Выпущен androidx.viewpager2:viewpager2:1.0.0-beta03
. Коммиты, включенные в эту версию, можно найти здесь .
Исправления ошибок
- Исправлена проблема
FragmentStateAdapter
с временным состояниемFragment
. б/134246546 - Исправлены проблемы
currentItem
иscrollState
, когда набор данных изменяется во время плавной прокрутки (устранены крайние случаи). б/137642608 - Исправлена анимация
PageTransformer
(включаяMarginPageTransformer
), конфликтующая с анимацией изменения набора данных. б/134658996 - Исправлена анимация плавной прокрутки в больших наборах данных (ограничение целочисленного значения
float
). б/134858960
Версия 1.0.0-бета02
19 июля 2019 г.
Выпущен androidx.viewpager2:viewpager2:1.0.0-beta02
. Коммиты, включенные в эту версию, можно найти здесь .
Исправления ошибок
- Удалена непреднамеренная зависимость jacoco, появившаяся в
1.0.0-beta01
. ( б / 137782951 )
Версия 1.0.0-бета01
17 июля 2019 г.
Выпущен androidx.viewpager2:viewpager2:1.0.0-beta01
. Коммиты, включенные в эту версию, можно найти здесь .
Исправления ошибок
- Исправлен сбой
ViewPager2.updateCurrentItem
при прокрутке и обновлении набора данных. - Исправление сбоя
NullPointerException
, связанного сViewPager2.isLayoutRtl
-
TOUCH_SLOP_PAGING
теперь сенсорный экран по умолчанию. - События
OnPageChangeCallback
исправлены для пустых адаптеров (страница0
вместо-1
для проверки четности сViewPager1
)
Известные проблемы
- Мы все еще работаем над оставшимися открытыми проблемами перед переходом на стабильную версию.
Версия 1.0.0-альфа06
2 июля 2019 г.
Выпущен androidx.viewpager2:viewpager2:1.0.0-alpha06
. Коммиты, включенные в эту версию, можно найти здесь .
Это наша последняя запланированная альфа-версия перед заморозкой API и переходом на бета-версию. Пожалуйста, оставьте нам отзыв об API.
Новые возможности
- Основы улучшения доступности:
ACTION_PAGE_RIGHT
,ACTION_PAGE_DOWN
и т. д.
Изменения API
-
FragmentStateAdapter
: неосновной элементFragment
ограничен значениемSTARTED
, а для ихmenuVisibility
установлено значение false. -
PageTransformer
,MarginPageTransformer
,CompositePageTransformer
: документация для фиксированнойposition
.
Исправления ошибок
- Исправлен
currentItem
после изменения набора данных/изменения адаптера. - Исправлена проблема
MarginPageTransformer
сoffscreenPageLimit
. - Исправлено поведение специальных возможностей в режиме
FakeDrag
.
Версия 1.0.0-альфа05
5 июня 2019 г.
Выпущен androidx.viewpager2:viewpager2:1.0.0-alpha05
. Коммиты, включенные в эту версию, можно найти здесь .
Новые возможности
-
ItemDecorator
представлен с поведением, соответствующимRecyclerView
. - Представлен
MarginPageTransformer
, обеспечивающий возможность создавать пространство между страницами (за пределами вставки страницы). -
CompositePageTransformer
представлен для обеспечения возможности объединения несколькихPageTransformer
.
Изменения API
- Метод
FragmentStateAdapter#getItem
переименован вFragmentStateAdapter#createFragment
— предыдущее имя метода оказалось источником ошибок в прошлом. - Значение
OFFSCREEN_PAGE_LIMIT_DEFAULT
изменено с0
на-1
. Нет необходимости изменять код клиента, если используется константаOFFSCREEN_PAGE_LIMIT_DEFAULT
.
Исправления ошибок
- Исправлено поведение
getCurrentItem()
, когдаSCROLL_STATE_SETTLING
прерывается перетаскиванием в противоположном направлении. - Проблемы с загрузчиком классов
FragmentStateAdapter
устраненные в контексте «Не сохранять действия». - Улучшена документация
setOffscreenPageLimit
.
Версия 1.0.0-альфа04
7 мая 2019 г.
Выпущен androidx.viewpager2:viewpager2:1.0.0-alpha04
. Коммиты, включенные в эту версию, можно найти здесь .
Новые возможности
-
offscreenPageLimit
: позволяет жестко контролировать количество страницView
илиFragment
, хранящихся в иерархии представлений.
Изменения API
- Атрибуты
orientation
иisUserScrollable
больше не являются частьюSavedState
- Методы
saveState
иrestoreState
стали окончательными вFragmentStateAdapter
- Аннотации
ViewPager2.Orientation
иViewPager2.ScrollState
сделаны закрытыми
Исправления ошибок
-
SavedState
: исправлена проблема с восстановлением при уничтожении/воссозданииActivity
. -
SavedState
: отложенное восстановление до установки адаптера. -
OnPageChangeCallback
: исправлены незначительные крайние случаи.
Версия 1.0.0-альфа03
3 апреля 2019 г.
Выпущен androidx.viewpager2:viewpager2:1.0.0-alpha03
. Коммиты, включенные в эту версию, можно найти здесь .
Новые возможности
- Возможность программной прокрутки ViewPager2:
fakeDragBy(offsetPx)
.
Изменения API
-
FragmentStateAdapter
теперь требует объектаLifecycle
. Добавлены два служебных конструктора для получения его от хостаFragmentActivity
или хостаFragment
.
Исправления ошибок
- Многочисленные исправления поддержки
Fragment
:- обработка обновлений набора данных в свернутом виде или во время поворота экрана;
- удаление ненужных фрагментов после ротации;
- удаление сохраненного состояния удаленных элементов.
-
PageChangeCallback
: исправлен расчет смещения страницы для страниц с полями.
Версия 1.0.0-альфа02
13 марта 2019 г.
Выпущен androidx.viewpager2:viewpager2:1.0.0-alpha02
. Полный список коммитов, включённых в эту версию, можно найти здесь .
Новые возможности
- Возможность отключить пользовательский ввод (
setUserInputEnabled
,isUserInputEnabled
)
Изменения API
- Финальный класс ViewPager2
Исправления ошибок
- Исправления стабильности
FragmentStateAdapter
Версия 1.0.0-альфа01
7 февраля 2019 г.
Выпущен androidx.viewpager2:viewpager2 1.0.0-alpha01
. Это первый выпуск ViewPager2.
Новые возможности
- По сравнению со своим предшественником
android.support.v4.view.ViewPager
(VP1):- Поддержка макета справа налево (RTL)
- Поддержка вертикальной ориентации
-
notifyDataSetChanged
полностью функционален (устранены ошибки VP1)
Изменения API
-
FragmentStateAdapter
заменяетFragmentStatePagerAdapter
-
RecyclerView.Adapter
заменяетPagerAdapter
-
registerOnPageChangeCallback
заменяетaddPageChangeListener
Известные проблемы
- клипТоПаддинг
- нет фейкаПеретащить
- JavaDoc
- вложенная прокрутка параллельно ориентации
- нет контроля за пределами экрана
- нужна лучшая интеграция TabLayout
- нет параметра ширины страницы (принудительно 100%/100%)
- преобразователь страниц: нет выбора аппаратного/программного уровня; нет обратного порядка рисования
- сохранять текущий элемент видимым при вставке страницы перед текущей
- навигация с клавиатуры требует доработки
- Грядут улучшения стабильности и производительности
FragmentStateAdapter