ПросмотрПейджер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следует обновиться как минимум доRecyclerView1.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следует обновиться как минимум доRecyclerView1.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