Последние версии библиотеки поддержки,Последние версии библиотеки поддержки,Последние версии библиотеки поддержки

На этой странице представлены сведения о последних выпусках пакетов библиотеки поддержки. Более ранние выпуски см. в архиве версий библиотеки поддержки .

Версия 28.0.0 Производство

(21 сентября 2018 г.)

Это стабильная версия библиотеки поддержки 28.0.0, пригодная для использования в производстве. Это будет последний выпуск функции в пакете android.support , и разработчикам рекомендуется перейти на AndroidX .

Новые возможности

  • AnimatedStateListDrawableCompat обеспечивает анимированные переходы между состояниями рисования.
  • VectorDrawableCompat получает поддержку заливок и обводок градиентом и ColorStateList .

Версия 28.0.0 RC 2

(27 августа 2018 г.)

Этот кандидат на выпуск библиотеки поддержки считается полнофункциональным, а его общедоступная поверхность API стабильна. Этот выпуск будет поставляться как окончательная стабильная версия, исключающая любые критические проблемы, которые могут возникнуть. Этот выпуск должен быть безопасным для использования в производстве. Пожалуйста, сообщайте о любых проблемах в общедоступную систему отслеживания проблем .

Исправлены проблемы

  • Proguard удаляет конструктор приложения модели представления (общедоступная проблема 112230489 )
  • Исправлено постоянное состояние AnimatedStateListDrawableCompat.
  • Удалена зависимость media2 от mediarouter 1.0.0.
  • `Fragment.getViewLifecycleOwner()` не останавливается при нажатии кнопки "домой" (общедоступная проблема 113070421 ) ([публичная проблема 113070421](https://issuetracker.google.com/issues/113070421))

Версия 28.0.0 RC 1

(6 августа 2018 г.)

Этот кандидат на выпуск библиотеки поддержки считается полнофункциональным, а его общедоступная поверхность API стабильна. Этот выпуск будет поставляться как окончательная стабильная версия, исключающая любые критические проблемы, которые могут возникнуть. Этот выпуск должен быть безопасным для использования в производстве. Пожалуйста, сообщайте о любых проблемах в общедоступную систему отслеживания проблем .

Примечание. Некоторые библиотеки, такие как media2, остаются на стадии альфа-версии, поскольку их интерфейсы API еще не доработаны. Мы не рекомендуем использовать альфа-библиотеки в производстве. Библиотекам следует строго избегать зависимости от альфа-библиотек в производстве, поскольку их поверхности API могут изменяться несовместимо с исходным кодом и двоичным кодом.

Исправлены проблемы

  • Меню BottomNavigationView неправильно инициализируется в библиотеке поддержки дизайна.
  • PositionalDataSource неправильно обрабатывает вставки предварительно подготовленных элементов в базу данных.
  • Слайдеры не работают и не реагируют
  • `SlicesProviderCompat.getPinnedSpecs()` не добавляет идентификаторы пользователей в URI.
  • RoutePlayer2: удаленное воспроизведение не переключается обратно на локальное воспроизведение
  • Анализ кэшированного фрагмента завершается сбоем при действиях
  • Сбой приложения Google Search при рендеринге статического фрагмента
  • ConcurrentModificationException в библиотеке выбора RecyclerView, когда набор данных изменился с удалением выделения
  • PreferenceThemeOverlay обновлен до последней темы материала. Если пользовательская тема не указана, PreferenceThemeOverlay используется в качестве темы по умолчанию.
  • Темы PreferenceThemeOverlay.v14 и PreferenceThemeOverlay.v14.Material устарели в пользу PreferenceThemeOverlay.
  • Видимость PreferenceGroup теперь привязана к ее дочерним группам: скрытие родительской группы также не позволит ее дочерним элементам отображаться в иерархии. Используйте Preference.isShown(), чтобы узнать, действительно ли предпочтение отображается пользователю в иерархии.
  • Preference.onSetInitialValue(boolean, Object) устарел и заменен на onSetInitialValue(Object). PreferenceDataStore теперь также корректно восстанавливает значения по умолчанию.

Версия 28.0.0 Бета 1

(июль 2018 г.)

Эта бета-версия библиотеки поддержки считается полнофункциональной, а ее общедоступная поверхность API стабильна, исключая любые критические проблемы, которые могут возникнуть. Хотя этот выпуск безопасен для использования в производстве, он все равно может содержать ошибки. Пожалуйста, сообщайте о любых проблемах в общедоступную систему отслеживания проблем .

Исправлены проблемы

  • GestureSelectionHelper принимает события для невыбираемых элементов
  • Срезы ползунка могут иметь дублирующийся значок большого пальца при обновлении значения ползунка.
  • IconCompat сломал значки TYPE_URI
  • Сбой с настройками при использовании панели поиска
  • Сбой в Slice.toString()
  • OffsettingListUpdateCallback.onMoved() вызывает mCallback.onRemoved() вместо mCallback.onMoved() (ошибка 110711937 ).

Версия 27.1.1

(апрель 2018 г.)

Исправлены проблемы

  • AsyncListDiffer не вызывает getChangePayload (проблема AOSP 73961809 )
  • OnCleared фрагмента ViewModel не вызывается (проблема AOSP 74139250 )
  • RecyclerView.setRecycledViewPool() увеличивает AttachCount, даже если адаптер имеет значение null
  • RecyclerView NPE, если SmoothScroller.onStop вызывает stop() или startSmoothScroller()
  • Транзакция замены фрагмента приводит к мерцанию предыдущего фрагмента после отображения нового фрагмента (проблема AOSP 74051124 )
  • Критическое изменение обратного вызова загрузчика в версии 27.1.0 (проблема AOSP 74135998 )
  • Макет RTL не работает, если столбец набора вертикальной сетки> 1
  • onLoadFinished вызывается несколько раз в ViewPager с помощью FragmentPagerAdapter
  • AsyncListDiffer должен отправлять обновления после установки текущего списка (проблема AOSP 74003309 ).
  • ShareActionProvider выдает ClassCastException в 27.1.0
  • Изменение жизненного цикла фрагмента с помощью ViewPager (проблема AOSP 73976255 )

Версия 28.0.0 Альфа 1

(март 2018 г.)

Примечание. 28.0.0-alpha1 — это предварительная версия, поддерживающая предварительную версию Android P для разработчиков. Интерфейс API может быть изменен, и он не обязательно включает в себя функции или исправления ошибок из последних стабильных версий библиотеки поддержки.

Важные изменения

  • Как ранее отмечалось в объявлении об Android KTX , мы продолжаем использовать префикс пакета androidx в наших библиотеках. В этом новом пакете начинается набор совершенно новых библиотек, включая heifwriter и recyclerview-selection . Мы надеемся, что разделение на android.* и androidx.* сделает более очевидным, какие API включены в состав платформы, а какие являются статическими библиотеками для разработчиков приложений, работающих с разными версиями Android.
  • Мы разделили части support-core-ui, support-core-utils и support-compat на более мелкие библиотеки. Это изменение поможет нам распутать зависимости библиотек поддержки в будущем. Теперь у нас есть следующие новые библиотеки:
    • asynclayoutinflater (из support-core-ui)
    • коллекции (из support-compat)
    • координатор макета (из дизайна)
    • курсорадаптер (из support-core-ui)
    • customview (из support-core-ui)
    • файл документа (из support-core-utils)
    • расположение ящиков (из support-core-ui)
    • интерполятор (из support-core-ui)
    • загрузчик (из фрагментов поддержки и основных утилит)
    • localbroadcastmanager (из support-core-utils)
    • печать (из support-core-utils)
    • скользящая панель (из support-core-ui)
    • swiperefreshlayout (из support-core-ui)
    • viewpager (из support-core-ui)

Новые API

  • recyclerview-selection обеспечивает поддержку выбора элементов для RecyclerView . Пакет обеспечивает:
    • Поддержка создания, изменения, проверки и мониторинга изменений набора выбранных элементов в списке RecyclerView.
    • Поддержка интуитивно понятных действий с множественным выбором:
      • Сенсорный выбор позволяет пользователям выбирать диапазоны элементов с помощью интуитивно понятного длительного нажатия и перетаскивания.
      • Выбор полосы с помощью мыши позволяет пользователям выбирать блок элементов в списке RecyclerView, используя традиционные действия с полосой указателя мыши или лассо.
    • Поддержка сенсорных устройств, включая форм-факторы телефонов и ноутбуков с сенсорным экраном, а также устройств, ориентированных на указатель.
  • HEIF Writer обеспечивает поддержку записи неподвижных изображений в формате HEIF.
  • Библиотека дизайна
    • Мы представили новую тему приложения Theme.MaterialComponents с новыми атрибутами и обновленными стилями для компонентов.
    • Мы добавили следующие компоненты:
      • Нижняя панель приложений
      • Чип
      • ЧипГруппа
      • МатериалКнопка
      • МатериалКартаView
  • Slices предоставляет приложениям платформу для встраивания шаблонного контента из других приложений.
    • срезы-построители содержат методы для создания контента в формате шаблона.
    • слайсы-представление содержат методы для представления этого контента.
  • Действия браузера предоставляют разработчикам приложений протокол для запуска согласованного (но настраиваемого) контекстного меню для URL-адресов. Эта функция зависит от наличия браузерного приложения (например, Chrome, где эта функция все еще находится в стадии разработки), которое реализует поддержку действий браузера.
  • ContextCompat.getSystemService() и getSystemServiceName() позволяют выполнять поиск системных служб по типу на всех уровнях API.

Исправления ошибок

  • OnCleared фрагмента ViewModel не вызывается (проблема AOSP 74139250 )
  • onLoadFinished() вызывается несколько раз в ViewPager с помощью FragmentPagerAdapter (проблема AOSP 74182171 )
  • Функция SmoothScrollToPosition() LinearLayoutManager RecyclerView отображает беспорядочное движение (вперед и назад) при определенных обстоятельствах (проблема AOSP 71567765 ).

Выпуск версии 27.1.0

(февраль 2018 г.)

Важные изменения

  • Базовая реализация Loaders была переписана для использования Lifecycle . Хотя API остался неизменным, есть ряд изменений в поведении:
    • initLoader() , restartLoader() и destroyLoader() теперь можно вызывать только в основном потоке.
    • onStartLoading() и onStopLoading() загрузчика теперь вызываются, когда содержащий FragmentActivity/Fragment запускается и останавливается соответственно.
    • onLoadFinished() будет вызываться только между onStart() и onStop . В результате транзакции Fragment теперь можно безопасно выполнять в onLoadFinished() .
    • Методы FragmentController, связанные с загрузчиками, теперь устарели.
  • getDialog() в DialogFragment теперь будет ненулевым вплоть до onDestroyView() , а не станет нулевым в dismiss() . Теперь вы можете определить, был ли диалог закрыт вручную в onStop() проверив, возвращает ли getDialog().isShowing() false.

Новые API

  • ListAdapter для RecyclerView (вместе с AsyncListDiffer ) упрощает вычисление различий в списках в фоновом потоке. Это может помочь вашему RecyclerView автоматически анимировать изменения содержимого с минимальной работой в потоке пользовательского интерфейса. Они используют DiffUtil под капотом.
  • SortedList.ReplaceAll позволяет обновлять все данные в SortedList, который запускает все соответствующие анимации для вставок, удалений, изменений и перемещений (перемещения рассматриваются как удаления и вставки).
  • FragmentActivity и Fragment теперь реализуют ViewModelStoreOwner и теперь могут использоваться с конструкторами ViewModelProvider в качестве альтернативы использованию ViewModelProviders.of()
  • Фрагменты теперь имеют requireContext() , requireActivity() , requireHost() и requireFragmentManager() , которые возвращают объект NonNull из эквивалентных методов get или вызывают исключение IllegalStateException .
  • requireViewById() , версия findViewById() совместимая с @NonNull , была добавлена ​​в WindowCompat , ActivityCompat и ViewCompat , которые выдают исключение IllegalArgumentException , когда цель не может быть найдена.
  • Методы LoaderCallbacks теперь имеют соответствующие аннотации @Nullable и @NonNull .
  • FileProvider теперь поддерживает getExternalMediaDirs() на устройствах API 21 и более поздних версий через новый элемент <external-media-path> .

Исправления ошибок

  • Фрагмент, который инициализирует загрузчик в onCreate, нарушил жизненный цикл внутри ViewPager.
  • LoaderManager выдает исключение IllegalStateException в onLoadFinished
  • LoaderViewModel не очищает свои загрузчики в onCleared
  • Файл класса для android.arch.lifecycle.ViewModelStoreOwner не найден
  • DialogFragment onDismiss не вызывается сразу после увольнения()
  • Эмодзи с флагом страны не работают на устройствах с ключами выпуска при использовании загружаемых шрифтов.
  • Библиотека настроек использует атрибуты, которые не будут работать в старых версиях Android.
  • Типы артефактов testlib MediaCompat неправильно документированы (проблема AOSP 71559905 ).
  • Сбой Google Sans в TypefaceCompatUtil
  • Предоставьте конструктор ArraySet, который принимает Collection.
  • updateApi удаляет файлы .ignore, которые следует сохранить.
  • избыточные MainFragments, созданные в BrowseFragment
  • Удалить использование отражения из CarRecyclerView.
  • java.lang.IllegalStateException в FragmentManagerImpl.checkStateLoss
  • Получил (недокументированное) java.lang.SecurityException при использовании android.support.v4.content.PermissionChecker.checkSelfPermission
  • RecyclerView IndexOutOfBoundsException, поскольку State.mPreviousLayoutItemCount не очищается в setAdapter (проблема AOSP 37657125 )
  • Фрагмент, который инициализирует загрузчик в onCreate, нарушил жизненный цикл внутри ViewPager (проблема AOSP 34831613 )
  • Сбой FragmentManagerImpl.execSingleAction

Выпуск версии 27.0.2

(ноябрь 2017 г.)

Исправления ошибок

  • EmojiEditTextHelper выдает исключение NullPointerException .
  • IllegalStateException : фрагмент еще не прикреплен.
  • Невозможно закрыть всплывающее окно со значком трансляции, нажав в любом месте экрана.
  • MediaMetadataCompat выдает исключение BadParcelableException .

Выпуск версии 27.0.1

(ноябрь 2017 г.)

Исправления ошибок

  • LifecycleRegistry находится в неправильном состоянии после вызова startActivityForResult() . (Выпуск 65665621 )
  • Цвет отключенных кнопок слишком светлый на старых уровнях API.
  • После прокрутки пользователь не может щелкнуть элемент в RecyclerView . (выпуск AOSP 66996774 )
  • В Talkback нажатие на дополнительные параметры не приводит к тому, что система объявляет новое всплывающее окно или выделяет новые параметры.

Выпуск версии 27.0.0

(октябрь 2017 г.)

Различия API

Изменения API

  • Аннотации об отсутствии значений были добавлены к различным API, включая следующие: Это может привести к ошибкам компиляции Kotlin, если типы возвращаемых значений, допускающие значение NULL, не обрабатываются должным образом.
  • Fragment может использовать версии библиотеки поддержки Transition для переходов фрагментов, включая переходы с общими элементами.
  • Библиотека подкачки контента ( android.support.content.ContentPager ) обеспечивает поддержку подкачки содержимого, предоставляемого через ContentProvider . Использование этой библиотеки позволяет клиенту избежать дорогостоящих межпроцессных «перестановок окон курсора» в потоке пользовательского интерфейса, предоставляя библиотеку совместимости для функции Android 8.0.
  • ViewCompat теперь добавляет оболочки для методов автозаполнения, включая getImportantForAutofill() , isImportantForAutofill() , setAutofillHints() и setImportantForAutofill() .
  • Leanback получает новые функции и дорабатывается, но теряет некоторые устаревшие классы, такие как:
    • Picker теперь может использовать разные разделители между каждым столбцом с помощью метода setSeparators() .
    • DiffCallback был добавлен, чтобы позволить ArrayObjectAdapter использовать выходные данные, предоставляемые DiffUtil .
    • Добавлена ​​инфраструктура для поддержки медиаплееров с переменными элементами управления, а также дополнительные элементы управления для быстрой перемотки вперед, повтора, перемешивания, следующего, предыдущего и перемотки назад.
    • Удаление MediaControllerGlue , PlaybackControlGlue, PlaybackControlSupportGlue и PlaybackOverlayFragment .
  • Для тестирования портирована утилита PollingCheck из AOSP CTS. Он опрашивает условие, которое должно произойти в пределах окна тайм-аута.
  • Добавлена ​​инфраструктура для поддержки разрешений во время выполнения приложений с мгновенным запуском для Android 5.0 с использованием PermissionCompatDelegate .
  • Теперь поддерживаются доверенные пользовательские вкладки, а также возможность определять связь между приложением и исходным URI.
  • Поддержка окружающего режима Android Wear упрощается за счет использования безголового фрагмента AmbientMode, который также делает поддержку окружающего режима совместимой с использованием компонентов архитектуры.
  • Некоторые устаревшие классы удалены по мере того, как мы отходим от старых API-интерфейсов до версии V14, таких как android.support.v7.NotificationCompat (вместо этого используйте NotificationCompat v4), KeyEventCompat , ParallelExecutorCompat и SearchViewCompat .
  • Все перенесенные константы метаданных манифеста износа теперь доступны через android.support.wear.utils.MetadataConstants .
  • Поддержка режима Ambient теперь доступна для всех действий, а не только для WearableActivity. Дополнительные сведения см. в справочнике AmbientMode .
  • RoundedDrawable теперь поддерживает инфляцию XML.

Исправления ошибок

  • Приложение вылетает из-за библиотеки поддержки 27 и загружаемого шрифта.
  • Загружаемые шрифты не работают в новых проектах, созданных после обновления SDK.
  • API SpeechRecouncer API не работает в последнем обновлении
  • Сбой, связанный с фрагментом, во время отрисовки после удаления анимированного представления.
  • поддержка-leanback-демо воспроизведение мультимедиа не работает
  • Библиотека поддержки Android добавляет <метаданные> в манифест
  • FontResourcesParserCompat должен понимать Android: attrs
  • Leanback Glue не поддерживает клавишу ввода паузы
  • Неразрешенный символ в IDE, когда несколько пакетов имеют один и тот же идентификатор артефакта.
  • Исключение нулевого указателя в CarExtender
  • Неправильный режим перемешивания/повтора установлен в PlaybackState после создания MediaController
  • Плакаты по умолчанию кластера библиотеки переходят на следующий кластер во время навигации
  • Метаданные карточки рекомендации обрезаны.
  • IllegalArgumentException в RecyclerView.attachViewToParent()
  • ClassNotFoundException при демаршаллинге SavedState (проблема AOSP 37133281 )
  • Фокус застревает в RecyclerView
  • Исправьте ANR в Leanback LayoutManager.

Выпуск версии 26.1.0

(сентябрь 2017 г.)

Это специальный выпуск для интеграции библиотеки поддержки с жизненными циклами компонентов архитектуры . Если вы не используете библиотеку Lifecycles, вам не нужно обновляться с версии 26.0.2. Дополнительные сведения см. в примечаниях к выпуску компонентов архитектуры .

Важные изменения

Выпуск версии 26.0.2

(август 2017 г.)

Исправления ошибок

  • Значки меню в библиотеке поддержки 26.0.0 сведены к минимуму.
  • GuidedAction.multilineDescription не работает должным образом с Leanback.

Выпуск версии 26.0.1

(август 2017 г.)

Исправления ошибок

  • FontCompat 26.0.0 аварийно завершает работу на устройствах O-MR1
  • Библиотека поддержки дизайна версии 26.0.0 не должна включать поддержку мультидекса (проблема 63999442 ))
  • AppBarLayout теперь имеет 300 пикселей левого заполнения с версии 26.0.0.
  • Навигация PlaybackTransportControl не работает.
  • Fragment.onCreateView вызывается незадолго до завершения onCreate.
  • android.os.BadParcelableException: ClassNotFoundException при демаршаллинге: android.support.v4.media.MediaMetadataCompat

Выпуск версии 26.0.0

(июль 2017 г.)

Важно! Библиотеки поддержки теперь доступны в репозитории Google Maven. Вам не нужно загружать репозиторий поддержки из SDK Manager. Дополнительные сведения см. в разделе Настройка библиотеки поддержки .

Важные изменения

  • Минимальная версия SDK была увеличена до 14. В результате многие API, существовавшие только для совместимости с уровнями API до 14, были признаны устаревшими. Клиентам этих API следует перейти на эквиваленты их платформы, как указано на справочной странице для каждого устаревшего API.
  • Библиотека пользовательского интерфейса Wear содержит классы, которые помогут вам реализовать шаблоны и макеты, работающие на устройствах Wear. Дополнительные сведения см. в разделе Использование библиотеки пользовательского интерфейса Wear .
  • Модуль процентной поддержки устарел. Клиентам этого модуля следует перейти на новый виджет ConstraintLayout , который предоставляется как отдельный артефакт в SDK Manager.
  • android.support.v7.app.NotificationCompat и содержащиеся в нем классы устарели и будут удалены в будущем выпуске:

Новые API

  • Новый логический флаг fastScrollEnabled для RecyclerView . Если этот параметр включен, необходимо установить fastScrollHorizontalThumbDrawable , fastScrollHorizontalTrackDrawable , fastScrollVerticalThumbDrawable и fastScrollVerticalTrackDrawable .

Различия API

Исправления ошибок

  • Бесконечный цикл в RecyclerView.toString()
  • ResourceNotFoundException запускает проект Kotlin на API 16 AVD после обновления до Canary 6
  • java.lang.AssertionError в режиме дизайна с библиотекой поддержки 26.0.0-beta2
  • Предварительный просмотр макета Android Studio не работает для виджетов библиотеки поддержки
  • Preference.setSingleLineTitle() игнорируется, если предпочтение не было создано с атрибутами.
  • Аннотации DAC "Since" неверны для версий 25.3.0/25.4.0 библиотеки поддержки.
  • ResourcesCompat.getFont() выдает исключение
  • Название панели инструментов не выделено жирным шрифтом
  • Автоматическое определение размера с помощью maxLines дает неожиданные результаты
  • NullPointerException в TextView.checkForRelayout()
  • AppCompatTextViewAutoSizeHelper.setRawTextSize() вызывает requestLayout() во время макета
  • Сбой EmojiAppCompatTextView
  • Autosize TextView не регулируется автоматически при изменении текста
  • Повреждение экрана в Instacart
  • Исключение UnsupportedOperationException в MenuItemCompat
  • NotificationCompat не полностью извлекает действия в API 24 или выше.
  • Проблемы привязки координатораLayout при обновлениях макета
,

На этой странице представлены сведения о последних выпусках пакетов библиотеки поддержки. Более ранние выпуски см. в архиве версий библиотеки поддержки .

Версия 28.0.0 Производство

(21 сентября 2018 г.)

Это стабильная версия библиотеки поддержки 28.0.0, пригодная для использования в производстве. Это будет последний выпуск функции в пакете android.support , и разработчикам рекомендуется перейти на AndroidX .

Новые возможности

  • AnimatedStateListDrawableCompat обеспечивает анимированные переходы между состояниями рисования.
  • VectorDrawableCompat получает поддержку заливок и обводок градиентом и ColorStateList .

Версия 28.0.0 RC 2

(27 августа 2018 г.)

Этот кандидат на выпуск библиотеки поддержки считается полнофункциональным, а его общедоступная поверхность API стабильна. Этот выпуск будет поставляться как окончательная стабильная версия, исключающая любые критические проблемы, которые могут возникнуть. Этот выпуск должен быть безопасным для использования в производстве. Пожалуйста, сообщайте о любых проблемах в общедоступную систему отслеживания проблем .

Исправлены проблемы

  • Proguard удаляет конструктор приложения модели представления (общедоступная проблема 112230489 )
  • Исправлено постоянное состояние AnimatedStateListDrawableCompat.
  • Удалена зависимость media2 от mediarouter 1.0.0.
  • `Fragment.getViewLifecycleOwner()` не останавливается при нажатии кнопки "домой" (общедоступная проблема 113070421 ) ([публичная проблема 113070421](https://issuetracker.google.com/issues/113070421))

Версия 28.0.0 RC 1

(6 августа 2018 г.)

Этот кандидат на выпуск библиотеки поддержки считается полнофункциональным, а его общедоступная поверхность API стабильна. Этот выпуск будет поставляться как окончательная стабильная версия, исключающая любые критические проблемы, которые могут возникнуть. Этот выпуск должен быть безопасным для использования в производстве. Пожалуйста, сообщайте о любых проблемах в общедоступную систему отслеживания проблем .

Примечание. Некоторые библиотеки, такие как media2, остаются на стадии альфа-версии, поскольку их интерфейсы API еще не доработаны. Мы не рекомендуем использовать альфа-библиотеки в производстве. Библиотекам следует строго избегать зависимости от альфа-библиотек в производстве, поскольку их поверхности API могут изменяться несовместимо с исходным кодом и двоичным кодом.

Исправлены проблемы

  • Меню BottomNavigationView неправильно инициализируется в библиотеке поддержки дизайна.
  • PositionalDataSource неправильно обрабатывает вставки предварительно подготовленных элементов в базу данных.
  • Слайдеры не работают и не реагируют
  • `SlicesProviderCompat.getPinnedSpecs()` не добавляет идентификаторы пользователей в URI.
  • RoutePlayer2: удаленное воспроизведение не переключается обратно на локальное воспроизведение
  • Анализ кэшированного фрагмента завершается сбоем при действиях
  • Сбой приложения Google Search при рендеринге статического фрагмента
  • ConcurrentModificationException в библиотеке выбора RecyclerView, когда набор данных изменился с удалением выделения
  • PreferenceThemeOverlay обновлен до последней темы материала. Если пользовательская тема не указана, PreferenceThemeOverlay используется в качестве темы по умолчанию.
  • Темы PreferenceThemeOverlay.v14 и PreferenceThemeOverlay.v14.Material устарели в пользу PreferenceThemeOverlay.
  • Видимость PreferenceGroup теперь привязана к ее дочерним группам: скрытие родительской группы также не позволит ее дочерним элементам отображаться в иерархии. Используйте Preference.isShown(), чтобы узнать, действительно ли предпочтение отображается пользователю в иерархии.
  • Preference.onSetInitialValue(boolean, Object) устарел и заменен на onSetInitialValue(Object). PreferenceDataStore теперь также корректно восстанавливает значения по умолчанию.

Версия 28.0.0 Бета 1

(июль 2018 г.)

Эта бета-версия библиотеки поддержки считается полнофункциональной, а ее общедоступная поверхность API стабильна, исключая любые критические проблемы, которые могут возникнуть. Хотя этот выпуск безопасен для использования в производстве, он все равно может содержать ошибки. Пожалуйста, сообщайте о любых проблемах в общедоступную систему отслеживания проблем .

Исправлены проблемы

  • GestureSelectionHelper принимает события для невыбираемых элементов
  • Срезы ползунка могут иметь дублирующийся значок большого пальца при обновлении значения ползунка.
  • IconCompat сломал значки TYPE_URI
  • Сбой с настройками при использовании панели поиска
  • Сбой в Slice.toString()
  • OffsettingListUpdateCallback.onMoved() вызывает mCallback.onRemoved() вместо mCallback.onMoved() (ошибка 110711937 ).

Версия 27.1.1

(апрель 2018 г.)

Исправлены проблемы

  • AsyncListDiffer не вызывает getChangePayload (проблема AOSP 73961809 )
  • OnCleared фрагмента ViewModel не вызывается (проблема AOSP 74139250 )
  • RecyclerView.setRecycledViewPool() увеличивает AttachCount, даже если адаптер имеет значение null
  • RecyclerView NPE, если SmoothScroller.onStop вызывает stop() или startSmoothScroller()
  • Транзакция замены фрагмента приводит к мерцанию предыдущего фрагмента после отображения нового фрагмента (проблема AOSP 74051124 )
  • Критическое изменение обратного вызова загрузчика в версии 27.1.0 (проблема AOSP 74135998 )
  • Макет RTL не работает, если столбец набора вертикальной сетки> 1
  • onLoadFinished вызывается несколько раз в ViewPager с помощью FragmentPagerAdapter
  • AsyncListDiffer должен отправлять обновления после установки текущего списка (проблема AOSP 74003309 ).
  • ShareActionProvider выдает ClassCastException в 27.1.0
  • Изменение жизненного цикла фрагмента с помощью ViewPager (проблема AOSP 73976255 )

Версия 28.0.0 Альфа 1

(март 2018 г.)

Примечание. 28.0.0-alpha1 — это предварительная версия, поддерживающая предварительную версию Android P для разработчиков. Интерфейс API может быть изменен, и он не обязательно включает в себя функции или исправления ошибок из последних стабильных версий библиотеки поддержки.

Важные изменения

  • Как ранее отмечалось в объявлении об Android KTX , мы продолжаем использовать префикс пакета androidx в наших библиотеках. В этом новом пакете начинается набор совершенно новых библиотек, включая heifwriter и recyclerview-selection . Мы надеемся, что разделение на android.* и androidx.* сделает более очевидным, какие API включены в состав платформы, а какие являются статическими библиотеками для разработчиков приложений, работающих с разными версиями Android.
  • Мы разделили части support-core-ui, support-core-utils и support-compat на более мелкие библиотеки. Это изменение поможет нам распутать зависимости библиотек поддержки в будущем. Теперь у нас есть следующие новые библиотеки:
    • asynclayoutinflater (из support-core-ui)
    • коллекции (из support-compat)
    • координатор макета (из дизайна)
    • курсорадаптер (из support-core-ui)
    • customview (из support-core-ui)
    • файл документа (из support-core-utils)
    • расположение ящиков (из support-core-ui)
    • интерполятор (из support-core-ui)
    • загрузчик (из фрагментов поддержки и основных утилит)
    • localbroadcastmanager (из support-core-utils)
    • печать (из support-core-utils)
    • скользящая панель (из support-core-ui)
    • swiperefreshlayout (из support-core-ui)
    • viewpager (из support-core-ui)

Новые API

  • recyclerview-selection обеспечивает поддержку выбора элементов для RecyclerView . Пакет обеспечивает:
    • Поддержка создания, изменения, проверки и мониторинга изменений набора выбранных элементов в списке RecyclerView.
    • Поддержка интуитивно понятных действий с множественным выбором:
      • Сенсорный выбор позволяет пользователям выбирать диапазоны элементов с помощью интуитивно понятного длительного нажатия и перетаскивания.
      • Выбор полосы с помощью мыши позволяет пользователям выбирать блок элементов в списке RecyclerView, используя традиционные действия с полосой указателя мыши или лассо.
    • Поддержка сенсорных устройств, включая форм-факторы телефонов и ноутбуков с сенсорным экраном, а также устройств, ориентированных на указатель.
  • HEIF Writer обеспечивает поддержку записи неподвижных изображений в формате HEIF.
  • Библиотека дизайна
    • Мы представили новую тему приложения Theme.MaterialComponents с новыми атрибутами и обновленными стилями для компонентов.
    • Мы добавили следующие компоненты:
      • Нижняя панель приложений
      • Чип
      • ЧипГруппа
      • МатериалКнопка
      • МатериалКартаView
  • Slices предоставляет приложениям платформу для встраивания шаблонного контента из других приложений.
    • срезы-построители содержат методы для создания контента в формате шаблона.
    • слайсы-представление содержат методы для представления этого контента.
  • Действия браузера предоставляют разработчикам приложений протокол для запуска согласованного (но настраиваемого) контекстного меню для URL-адресов. Эта функция зависит от наличия браузерного приложения (например, Chrome, где эта функция все еще находится в стадии разработки), которое реализует поддержку действий браузера.
  • ContextCompat.getSystemService() и getSystemServiceName() позволяют выполнять поиск системных служб по типу на всех уровнях API.

Исправления ошибок

  • OnCleared фрагмента ViewModel не вызывается (проблема AOSP 74139250 )
  • onLoadFinished() вызывается несколько раз в ViewPager с помощью FragmentPagerAdapter (проблема AOSP 74182171 )
  • Функция SmoothScrollToPosition() LinearLayoutManager RecyclerView отображает беспорядочное движение (вперед и назад) при определенных обстоятельствах (проблема AOSP 71567765 ).

Выпуск версии 27.1.0

(февраль 2018 г.)

Важные изменения

  • Базовая реализация Loaders была переписана для использования Lifecycle . Хотя API остался неизменным, есть ряд изменений в поведении:
    • initLoader() , restartLoader() и destroyLoader() теперь можно вызывать только в основном потоке.
    • onStartLoading() и onStopLoading() загрузчика теперь вызываются, когда содержащий FragmentActivity/Fragment запускается и останавливается соответственно.
    • onLoadFinished() будет вызываться только между onStart() и onStop . В результате транзакции Fragment теперь можно безопасно выполнять в onLoadFinished() .
    • Методы FragmentController, связанные с загрузчиками, теперь устарели.
  • getDialog() в DialogFragment теперь будет ненулевым вплоть до onDestroyView() , а не станет нулевым в dismiss() . Теперь вы можете определить, был ли диалог закрыт вручную в onStop() проверив, возвращает ли getDialog().isShowing() false.

Новые API

  • ListAdapter для RecyclerView (вместе с AsyncListDiffer ) упрощает вычисление различий в списках в фоновом потоке. Это может помочь вашему RecyclerView автоматически анимировать изменения содержимого с минимальной работой в потоке пользовательского интерфейса. Они используют DiffUtil под капотом.
  • SortedList.ReplaceAll позволяет обновлять все данные в SortedList, который запускает все соответствующие анимации для вставок, удалений, изменений и перемещений (перемещения рассматриваются как удаления и вставки).
  • FragmentActivity и Fragment теперь реализуют ViewModelStoreOwner и теперь могут использоваться с конструкторами ViewModelProvider в качестве альтернативы использованию ViewModelProviders.of()
  • Фрагменты теперь имеют requireContext() , requireActivity() , requireHost() и requireFragmentManager() , которые возвращают объект NonNull из эквивалентных методов get или вызывают исключение IllegalStateException .
  • requireViewById() , версия findViewById() совместимая с @NonNull , была добавлена ​​в WindowCompat , ActivityCompat и ViewCompat , которые выдают исключение IllegalArgumentException , когда цель не может быть найдена.
  • Методы LoaderCallbacks теперь имеют соответствующие аннотации @Nullable и @NonNull .
  • FileProvider теперь поддерживает getExternalMediaDirs() на устройствах API 21 и более поздних версий через новый элемент <external-media-path> .

Исправления ошибок

  • Фрагмент, который инициализирует загрузчик в onCreate, нарушил жизненный цикл внутри ViewPager.
  • LoaderManager выдает исключение IllegalStateException в onLoadFinished
  • LoaderViewModel не очищает свои загрузчики в onCleared
  • Файл класса для android.arch.lifecycle.ViewModelStoreOwner не найден
  • DialogFragment onDismiss не вызывается сразу после увольнения()
  • Эмодзи с флагом страны не работают на устройствах с ключами выпуска при использовании загружаемых шрифтов.
  • Библиотека настроек использует атрибуты, которые не будут работать в старых версиях Android.
  • Типы артефактов testlib MediaCompat неправильно документированы (проблема AOSP 71559905 ).
  • Сбой Google Sans в TypefaceCompatUtil
  • Предоставьте конструктор ArraySet, который принимает Collection.
  • updateApi удаляет файлы .ignore, которые следует сохранить.
  • избыточные MainFragments, созданные в BrowseFragment
  • Удалить использование отражения из CarRecyclerView.
  • java.lang.IllegalStateException в FragmentManagerImpl.checkStateLoss
  • Получил (недокументированное) java.lang.SecurityException при использовании android.support.v4.content.PermissionChecker.checkSelfPermission
  • RecyclerView IndexOutOfBoundsException, поскольку State.mPreviousLayoutItemCount не очищается в setAdapter (проблема AOSP 37657125 )
  • Фрагмент, который инициализирует загрузчик в onCreate, нарушил жизненный цикл внутри ViewPager (проблема AOSP 34831613 )
  • Сбой FragmentManagerImpl.execSingleAction

Выпуск версии 27.0.2

(ноябрь 2017 г.)

Исправления ошибок

  • EmojiEditTextHelper выдает исключение NullPointerException .
  • IllegalStateException : фрагмент еще не прикреплен.
  • Невозможно закрыть всплывающее окно со значком трансляции, нажав в любом месте экрана.
  • MediaMetadataCompat выдает исключение BadParcelableException .

Выпуск версии 27.0.1

(ноябрь 2017 г.)

Исправления ошибок

  • LifecycleRegistry находится в неправильном состоянии после вызова startActivityForResult() . (Выпуск 65665621 )
  • Цвет отключенных кнопок слишком светлый на старых уровнях API.
  • После прокрутки пользователь не может щелкнуть элемент в RecyclerView . (выпуск AOSP 66996774 )
  • В Talkback нажатие на дополнительные параметры не приводит к тому, что система объявляет новое всплывающее окно или выделяет новые параметры.

Выпуск версии 27.0.0

(октябрь 2017 г.)

Различия API

Изменения API

  • Аннотации об отсутствии значений были добавлены к различным API, включая следующие: Это может привести к ошибкам компиляции Kotlin, если типы возвращаемых значений, допускающие значение NULL, не обрабатываются должным образом.
  • Fragment может использовать версии библиотеки поддержки Transition для переходов фрагментов, включая переходы с общими элементами.
  • Библиотека подкачки контента ( android.support.content.ContentPager ) обеспечивает поддержку подкачки содержимого, предоставляемого через ContentProvider . Использование этой библиотеки позволяет клиенту избежать дорогостоящих межпроцессных «перестановок окон курсора» в потоке пользовательского интерфейса, предоставляя библиотеку совместимости для функции Android 8.0.
  • ViewCompat теперь добавляет оболочки для методов автозаполнения, включая getImportantForAutofill() , isImportantForAutofill() , setAutofillHints() и setImportantForAutofill() .
  • Leanback получает новые функции и дорабатывается, но теряет некоторые устаревшие классы, такие как:
    • Picker теперь может использовать разные разделители между каждым столбцом с помощью метода setSeparators() .
    • DiffCallback был добавлен, чтобы позволить ArrayObjectAdapter использовать выходные данные, предоставляемые DiffUtil .
    • Добавлена ​​инфраструктура для поддержки медиаплееров с переменными элементами управления, а также дополнительные элементы управления для быстрой перемотки вперед, повтора, перемешивания, следующего, предыдущего и перемотки назад.
    • Удаление MediaControllerGlue , PlaybackControlGlue, PlaybackControlSupportGlue и PlaybackOverlayFragment .
  • Для тестирования портирована утилита PollingCheck из AOSP CTS. Он опрашивает условие, которое должно произойти в пределах окна тайм-аута.
  • Добавлена ​​инфраструктура для поддержки разрешений во время выполнения приложений с мгновенным запуском для Android 5.0 с использованием PermissionCompatDelegate .
  • Теперь поддерживаются доверенные пользовательские вкладки, а также возможность определять связь между приложением и исходным URI.
  • Поддержка окружающего режима Android Wear упрощается за счет использования безголового фрагмента AmbientMode, который также делает поддержку окружающего режима совместимой с использованием компонентов архитектуры.
  • Некоторые устаревшие классы удалены по мере того, как мы отходим от старых API-интерфейсов до версии V14, таких как android.support.v7.NotificationCompat (вместо этого используйте NotificationCompat v4), KeyEventCompat , ParallelExecutorCompat и SearchViewCompat .
  • Все перенесенные константы метаданных манифеста износа теперь доступны через android.support.wear.utils.MetadataConstants .
  • Поддержка режима Ambient теперь доступна для всех действий, а не только для WearableActivity. Дополнительные сведения см. в справочнике AmbientMode .
  • RoundedDrawable теперь поддерживает инфляцию XML.

Исправления ошибок

  • Приложение вылетает из-за библиотеки поддержки 27 и загружаемого шрифта.
  • Загружаемые шрифты не работают в новых проектах, созданных после обновления SDK.
  • API SpeechRecouncer API не работает в последнем обновлении
  • Сбой, связанный с фрагментом, во время отрисовки после удаления анимированного представления.
  • поддержка-leanback-демо воспроизведение мультимедиа не работает
  • Библиотека поддержки Android добавляет <метаданные> в манифест
  • FontResourcesParserCompat должен понимать Android: attrs
  • Leanback Glue не поддерживает клавишу ввода паузы
  • Неразрешенный символ в IDE, когда несколько пакетов имеют один и тот же идентификатор артефакта.
  • Исключение нулевого указателя в CarExtender
  • Неправильный режим перемешивания/повтора установлен в PlaybackState после создания MediaController
  • Плакаты по умолчанию кластера библиотеки переходят на следующий кластер во время навигации
  • Метаданные карточки рекомендации обрезаны.
  • IllegalArgumentException в RecyclerView.attachViewToParent()
  • ClassNotFoundException при демаршаллинге SavedState (проблема AOSP 37133281 )
  • Фокус застревает в RecyclerView
  • Исправьте ANR в Leanback LayoutManager.

Выпуск версии 26.1.0

(сентябрь 2017 г.)

Это специальный выпуск для интеграции библиотеки поддержки с жизненными циклами компонентов архитектуры . Если вы не используете библиотеку Lifecycles, вам не нужно обновляться с версии 26.0.2. Дополнительные сведения см. в примечаниях к выпуску компонентов архитектуры .

Важные изменения

Выпуск версии 26.0.2

(август 2017 г.)

Исправления ошибок

  • Значки меню в библиотеке поддержки 26.0.0 сведены к минимуму.
  • GuidedAction.multilineDescription не работает должным образом с Leanback.

Выпуск версии 26.0.1

(август 2017 г.)

Исправления ошибок

  • FontCompat 26.0.0 аварийно завершает работу на устройствах O-MR1
  • Библиотека поддержки дизайна версии 26.0.0 не должна включать поддержку мультидекса (проблема 63999442 ))
  • AppBarLayout теперь имеет 300 пикселей левого заполнения с версии 26.0.0.
  • Навигация PlaybackTransportControl не работает.
  • Fragment.onCreateView вызывается незадолго до завершения onCreate.
  • android.os.BadParcelableException: ClassNotFoundException при демаршаллинге: android.support.v4.media.MediaMetadataCompat

Выпуск версии 26.0.0

(июль 2017 г.)

Важно! Библиотеки поддержки теперь доступны в репозитории Google Maven. Вам не нужно загружать репозиторий поддержки из SDK Manager. Дополнительные сведения см. в разделе Настройка библиотеки поддержки .

Важные изменения

  • Минимальная версия SDK была увеличена до 14. В результате многие API, существовавшие только для совместимости с уровнями API до 14, были признаны устаревшими. Клиентам этих API следует перейти на эквиваленты их платформы, как указано на справочной странице для каждого устаревшего API.
  • Библиотека пользовательского интерфейса Wear содержит классы, которые помогут вам реализовать шаблоны и макеты, работающие на устройствах Wear. Дополнительные сведения см. в разделе Использование библиотеки пользовательского интерфейса Wear .
  • Модуль процентной поддержки устарел. Клиентам этого модуля следует перейти на новый виджет ConstraintLayout , который предоставляется как отдельный артефакт в SDK Manager.
  • android.support.v7.app.NotificationCompat и содержащиеся в нем классы устарели и будут удалены в будущем выпуске:

Новые API

  • Новый логический флаг fastScrollEnabled для RecyclerView . Если этот параметр включен, необходимо установить fastScrollHorizontalThumbDrawable , fastScrollHorizontalTrackDrawable , fastScrollVerticalThumbDrawable и fastScrollVerticalTrackDrawable .

Различия API

Исправления ошибок

  • Бесконечный цикл в RecyclerView.toString()
  • ResourceNotFoundException запускает проект Kotlin на API 16 AVD после обновления до Canary 6
  • java.lang.AssertionError в режиме дизайна с библиотекой поддержки 26.0.0-beta2
  • Предварительный просмотр макета Android Studio не работает для виджетов библиотеки поддержки
  • Preference.setSingleLineTitle() игнорируется, если предпочтение не было создано с атрибутами.
  • Аннотации DAC "Since" неверны для версий 25.3.0/25.4.0 библиотеки поддержки.
  • ResourcesCompat.getFont() выдает исключение
  • Название панели инструментов не выделено жирным шрифтом
  • Автоматическое определение размера с помощью maxLines дает неожиданные результаты
  • NullPointerException в TextView.checkForRelayout()
  • AppCompatTextViewAutoSizeHelper.setRawTextSize() вызывает requestLayout() во время макета
  • Сбой EmojiAppCompatTextView
  • Autosize TextView не регулируется автоматически при изменении текста
  • Повреждение экрана в Instacart
  • Исключение UnsupportedOperationException в MenuItemCompat
  • NotificationCompat не полностью извлекает действия в API 24 или выше.
  • Проблемы привязки координатораLayout при обновлениях макета
,

На этой странице представлены сведения о последних выпусках пакетов библиотеки поддержки. Более ранние выпуски см. в архиве версий библиотеки поддержки .

Версия 28.0.0 Производство

(21 сентября 2018 г.)

Это стабильная версия библиотеки поддержки 28.0.0, пригодная для использования в производстве. Это будет последний выпуск функции в пакете android.support , и разработчикам рекомендуется перейти на AndroidX .

Новые возможности

  • AnimatedStateListDrawableCompat обеспечивает анимированные переходы между состояниями рисования.
  • VectorDrawableCompat получает поддержку заливок и обводок градиентом и ColorStateList .

Версия 28.0.0 RC 2

(27 августа 2018 г.)

Этот кандидат на выпуск библиотеки поддержки считается полнофункциональным, а его общедоступная поверхность API стабильна. Этот выпуск будет поставляться как окончательная стабильная версия, исключающая любые критические проблемы, которые могут возникнуть. Этот выпуск должен быть безопасным для использования в производстве. Пожалуйста, сообщайте о любых проблемах в общедоступную систему отслеживания проблем .

Исправлены проблемы

  • Proguard удаляет конструктор приложения модели представления (общедоступная проблема 112230489 )
  • Исправлено постоянное состояние AnimatedStateListDrawableCompat.
  • Удалена зависимость media2 от mediarouter 1.0.0.
  • `Fragment.getViewLifecycleOwner()` не останавливается при нажатии кнопки "домой" (общедоступная проблема 113070421 ) ([публичная проблема 113070421](https://issuetracker.google.com/issues/113070421))

Версия 28.0.0 RC 1

(6 августа 2018 г.)

Этот кандидат на выпуск библиотеки поддержки считается полнофункциональным, а его общедоступная поверхность API стабильна. Этот выпуск будет поставляться как окончательная стабильная версия, исключающая любые критические проблемы, которые могут возникнуть. Этот выпуск должен быть безопасным для использования в производстве. Пожалуйста, сообщайте о любых проблемах в общедоступную систему отслеживания проблем .

Примечание. Некоторые библиотеки, такие как media2, остаются на стадии альфа-версии, поскольку их интерфейсы API еще не доработаны. Мы не рекомендуем использовать альфа-библиотеки в производстве. Библиотекам следует строго избегать зависимости от альфа-библиотек в производстве, поскольку их поверхности API могут изменяться несовместимо с исходным кодом и двоичным кодом.

Исправлены проблемы

  • Меню BottomNavigationView неправильно инициализируется в библиотеке поддержки дизайна.
  • PositionalDataSource неправильно обрабатывает вставки предварительно подготовленных элементов в базу данных.
  • Слайдеры не работают и не реагируют
  • `SlicesProviderCompat.getPinnedSpecs()` не добавляет идентификаторы пользователей в URI.
  • RoutePlayer2: удаленное воспроизведение не переключается обратно на локальное воспроизведение
  • Анализ кэшированного фрагмента завершается сбоем при действиях
  • Сбой приложения Google Search при рендеринге статического фрагмента
  • ConcurrentModificationException в библиотеке выбора RecyclerView, когда набор данных изменился с удалением выделения
  • PreferenceThemeOverlay обновлен до последней темы материала. Если пользовательская тема не указана, PreferenceThemeOverlay используется в качестве темы по умолчанию.
  • Темы PreferenceThemeOverlay.v14 и PreferenceThemeOverlay.v14.Material устарели в пользу PreferenceThemeOverlay.
  • Видимость PreferenceGroup теперь привязана к ее дочерним группам: скрытие родительской группы также не позволит ее дочерним элементам отображаться в иерархии. Используйте Preference.isShown(), чтобы узнать, действительно ли предпочтение отображается пользователю в иерархии.
  • Preference.onSetInitialValue(boolean, Object) устарел и заменен на onSetInitialValue(Object). PreferenceDataStore теперь также корректно восстанавливает значения по умолчанию.

Версия 28.0.0 Бета 1

(июль 2018 г.)

Эта бета-версия библиотеки поддержки считается полнофункциональной, а ее общедоступная поверхность API стабильна, исключая любые критические проблемы, которые могут возникнуть. Хотя этот выпуск безопасен для использования в производстве, он все равно может содержать ошибки. Пожалуйста, сообщайте о любых проблемах в общедоступную систему отслеживания проблем .

Исправлены проблемы

  • GestureSelectionHelper принимает события для невыбираемых элементов
  • Срезы ползунка могут иметь дублирующийся значок большого пальца при обновлении значения ползунка.
  • IconCompat сломал значки TYPE_URI
  • Сбой с настройками при использовании панели поиска
  • Сбой в Slice.toString()
  • OffsettingListUpdateCallback.onMoved() вызывает mCallback.onRemoved() вместо mCallback.onMoved() (ошибка 110711937 ).

Версия 27.1.1

(апрель 2018 г.)

Исправлены проблемы

  • AsyncListDiffer не вызывает getChangePayload (проблема AOSP 73961809 )
  • OnCleared фрагмента ViewModel не вызывается (проблема AOSP 74139250 )
  • RecyclerView.setRecycledViewPool() увеличивает AttachCount, даже если адаптер имеет значение null
  • RecyclerView NPE, если SmoothScroller.onStop вызывает stop() или startSmoothScroller()
  • Транзакция замены фрагмента приводит к мерцанию предыдущего фрагмента после отображения нового фрагмента (проблема AOSP 74051124 )
  • Критическое изменение обратного вызова загрузчика в версии 27.1.0 (проблема AOSP 74135998 )
  • Макет RTL не работает, если столбец набора вертикальной сетки> 1
  • onLoadFinished вызывается несколько раз в ViewPager с помощью FragmentPagerAdapter
  • AsyncListDiffer должен отправлять обновления после установки текущего списка (проблема AOSP 74003309 ).
  • ShareActionProvider выдает ClassCastException в 27.1.0
  • Изменение жизненного цикла фрагмента с помощью ViewPager (проблема AOSP 73976255 )

Версия 28.0.0 Альфа 1

(март 2018 г.)

Примечание. 28.0.0-alpha1 — это предварительная версия, поддерживающая предварительную версию Android P для разработчиков. Интерфейс API может быть изменен, и он не обязательно включает в себя функции или исправления ошибок из последних стабильных версий библиотеки поддержки.

Важные изменения

  • Как ранее отмечалось в объявлении об Android KTX , мы продолжаем использовать префикс пакета androidx в наших библиотеках. В этом новом пакете начинается набор совершенно новых библиотек, включая heifwriter и recyclerview-selection . Мы надеемся, что разделение на android.* и androidx.* сделает более очевидным, какие API включены в состав платформы, а какие являются статическими библиотеками для разработчиков приложений, работающих с разными версиями Android.
  • Мы разделили части support-core-ui, support-core-utils и support-compat на более мелкие библиотеки. Это изменение поможет нам распутать зависимости библиотек поддержки в будущем. Теперь у нас есть следующие новые библиотеки:
    • asynclayoutinflater (из support-core-ui)
    • коллекции (из support-compat)
    • координатор макета (из дизайна)
    • курсорадаптер (из support-core-ui)
    • customview (из support-core-ui)
    • файл документа (из support-core-utils)
    • расположение ящиков (из support-core-ui)
    • интерполятор (из support-core-ui)
    • загрузчик (из фрагментов поддержки и основных утилит)
    • localbroadcastmanager (из support-core-utils)
    • печать (из support-core-utils)
    • скользящая панель (из support-core-ui)
    • swiperefreshlayout (из support-core-ui)
    • viewpager (из support-core-ui)

Новые API

  • recyclerview-selection обеспечивает поддержку выбора элементов для RecyclerView . Пакет обеспечивает:
    • Поддержка создания, изменения, проверки и мониторинга изменений набора выбранных элементов в списке RecyclerView.
    • Поддержка интуитивно понятных действий с множественным выбором:
      • Сенсорный выбор позволяет пользователям выбирать диапазоны элементов с помощью интуитивно понятного длительного нажатия и перетаскивания.
      • Выбор полосы с помощью мыши позволяет пользователям выбирать блок элементов в списке RecyclerView, используя традиционные действия с полосой указателя мыши или лассо.
    • Поддержка сенсорных устройств, включая форм-факторы телефонов и ноутбуков с сенсорным экраном, а также устройств, ориентированных на указатель.
  • HEIF Writer обеспечивает поддержку записи неподвижных изображений в формате HEIF.
  • Библиотека дизайна
    • Мы представили новую тему приложения Theme.MaterialComponents с новыми атрибутами и обновленными стилями для компонентов.
    • Мы добавили следующие компоненты:
      • Нижняя панель приложений
      • Чип
      • ЧипГруппа
      • МатериалКнопка
      • МатериалКартаView
  • Slices предоставляет приложениям платформу для встраивания шаблонного контента из других приложений.
    • срезы-построители содержат методы для создания контента в формате шаблона.
    • слайсы-представление содержат методы для представления этого контента.
  • Действия браузера предоставляют разработчикам приложений протокол для запуска согласованного (но настраиваемого) контекстного меню для URL-адресов. Эта функция зависит от наличия браузерного приложения (например, Chrome, где эта функция все еще находится в стадии разработки), которое реализует поддержку действий браузера.
  • ContextCompat.getSystemService() и getSystemServiceName() позволяют выполнять поиск системных служб по типу на всех уровнях API.

Исправления ошибок

  • OnCleared фрагмента ViewModel не вызывается (проблема AOSP 74139250 )
  • onLoadFinished() вызывается несколько раз в ViewPager с помощью FragmentPagerAdapter (проблема AOSP 74182171 )
  • Функция SmoothScrollToPosition() LinearLayoutManager RecyclerView отображает беспорядочное движение (вперед и назад) при определенных обстоятельствах (проблема AOSP 71567765 ).

Выпуск версии 27.1.0

(февраль 2018 г.)

Важные изменения

  • Базовая реализация Loaders была переписана для использования Lifecycle . Хотя API остался неизменным, есть ряд изменений в поведении:
    • initLoader() , restartLoader() и destroyLoader() теперь можно вызывать только в основном потоке.
    • onStartLoading() и onStopLoading() загрузчика теперь вызываются, когда содержащий FragmentActivity/Fragment запускается и останавливается соответственно.
    • onLoadFinished() будет вызываться только между onStart() и onStop . В результате транзакции Fragment теперь можно безопасно выполнять в onLoadFinished() .
    • Методы FragmentController, связанные с загрузчиками, теперь устарели.
  • getDialog() в DialogFragment теперь будет ненулевым вплоть до onDestroyView() , а не станет нулевым в dismiss() . Теперь вы можете определить, был ли диалог закрыт вручную в onStop() проверив, возвращает ли getDialog().isShowing() false.

Новые API

  • ListAdapter для RecyclerView (вместе с AsyncListDiffer ) упрощает вычисление различий в списках в фоновом потоке. Это может помочь вашему RecyclerView автоматически анимировать изменения содержимого с минимальной работой в потоке пользовательского интерфейса. Они используют DiffUtil под капотом.
  • SortedList.ReplaceAll позволяет обновлять все данные в SortedList, который запускает все соответствующие анимации для вставок, удалений, изменений и перемещений (перемещения рассматриваются как удаления и вставки).
  • FragmentActivity и Fragment теперь реализуют ViewModelStoreOwner и теперь могут использоваться с конструкторами ViewModelProvider в качестве альтернативы использованию ViewModelProviders.of()
  • Фрагменты теперь имеют requireContext() , requireActivity() , requireHost() и requireFragmentManager() , которые возвращают объект NonNull из эквивалентных методов get или вызывают исключение IllegalStateException .
  • requireViewById() , версия findViewById() совместимая с @NonNull , была добавлена ​​в WindowCompat , ActivityCompat и ViewCompat , которые выдают исключение IllegalArgumentException , когда цель не может быть найдена.
  • Методы LoaderCallbacks теперь имеют соответствующие аннотации @Nullable и @NonNull .
  • FileProvider теперь поддерживает getExternalMediaDirs() на устройствах API 21 и более поздних версий через новый элемент <external-media-path> .

Исправления ошибок

  • Фрагмент, который инициализирует загрузчик в onCreate, нарушил жизненный цикл внутри ViewPager.
  • LoaderManager выдает исключение IllegalStateException в onLoadFinished
  • LoaderViewModel не очищает свои загрузчики в onCleared
  • Файл класса для android.arch.lifecycle.ViewModelStoreOwner не найден
  • DialogFragment onDismiss не вызывается сразу после увольнения()
  • Эмодзи с флагом страны не работают на устройствах с ключами выпуска при использовании загружаемых шрифтов.
  • Библиотека настроек использует атрибуты, которые не будут работать в старых версиях Android.
  • Типы артефактов testlib MediaCompat неправильно документированы (проблема AOSP 71559905 ).
  • Сбой Google Sans в TypefaceCompatUtil
  • Предоставьте конструктор ArraySet, который принимает Collection.
  • updateApi удаляет файлы .ignore, которые следует сохранить.
  • избыточные MainFragments, созданные в BrowseFragment
  • Удалить использование отражения из CarRecyclerView.
  • java.lang.IllegalStateException в FragmentManagerImpl.checkStateLoss
  • Получил (недокументированное) java.lang.SecurityException при использовании android.support.v4.content.PermissionChecker.checkSelfPermission
  • RecyclerView IndexOutOfBoundsException, поскольку State.mPreviousLayoutItemCount не очищается в setAdapter (проблема AOSP 37657125 )
  • Фрагмент, который инициализирует загрузчик в onCreate, нарушил жизненный цикл внутри ViewPager (проблема AOSP 34831613 )
  • Сбой FragmentManagerImpl.execSingleAction

Выпуск версии 27.0.2

(ноябрь 2017 г.)

Исправления ошибок

  • EmojiEditTextHelper выдает исключение NullPointerException .
  • IllegalStateException : фрагмент еще не прикреплен.
  • Невозможно закрыть всплывающее окно со значком трансляции, нажав в любом месте экрана.
  • MediaMetadataCompat выдает исключение BadParcelableException .

Выпуск версии 27.0.1

(ноябрь 2017 г.)

Исправления ошибок

  • LifecycleRegistry находится в неправильном состоянии после вызова startActivityForResult() . (Выпуск 65665621 )
  • Цвет отключенных кнопок слишком светлый на старых уровнях API.
  • После прокрутки пользователь не может щелкнуть элемент в RecyclerView . (выпуск AOSP 66996774 )
  • В Talkback нажатие на дополнительные параметры не приводит к тому, что система объявляет новое всплывающее окно или выделяет новые параметры.

Выпуск версии 27.0.0

(октябрь 2017 г.)

Различия API

Изменения API

  • Аннотации об отсутствии значений были добавлены к различным API, включая следующие: Это может привести к ошибкам компиляции Kotlin, если типы возвращаемых значений, допускающие значение NULL, не обрабатываются должным образом.
  • Fragment может использовать версии библиотеки поддержки Transition для переходов фрагментов, включая переходы с общими элементами.
  • Библиотека подкачки контента ( android.support.content.ContentPager ) обеспечивает поддержку подкачки содержимого, предоставляемого через ContentProvider . Использование этой библиотеки позволяет клиенту избежать дорогостоящих межпроцессных «перестановок окон курсора» в потоке пользовательского интерфейса, предоставляя библиотеку совместимости для функции Android 8.0.
  • ViewCompat теперь добавляет оболочки для методов автозаполнения, включая getImportantForAutofill() , isImportantForAutofill() , setAutofillHints() и setImportantForAutofill() .
  • Leanback получает новые функции и дорабатывается, но теряет некоторые устаревшие классы, такие как:
    • Picker теперь может использовать разные разделители между каждым столбцом с помощью метода setSeparators() .
    • DiffCallback был добавлен, чтобы позволить ArrayObjectAdapter использовать выходные данные, предоставляемые DiffUtil .
    • Добавлена ​​инфраструктура для поддержки медиаплееров с переменными элементами управления, а также дополнительные элементы управления для быстрой перемотки вперед, повтора, перемешивания, следующего, предыдущего и перемотки назад.
    • Удаление MediaControllerGlue , PlaybackControlGlue, PlaybackControlSupportGlue и PlaybackOverlayFragment .
  • Для тестирования портирована утилита PollingCheck из AOSP CTS. Он опрашивает условие, которое должно произойти в пределах окна тайм-аута.
  • Добавлена ​​инфраструктура для поддержки разрешений во время выполнения приложений с мгновенным запуском для Android 5.0 с использованием PermissionCompatDelegate .
  • Теперь поддерживаются доверенные пользовательские вкладки, а также возможность определять связь между приложением и исходным URI.
  • Поддержка окружающего режима Android Wear упрощается за счет использования безголового фрагмента AmbientMode, который также делает поддержку окружающего режима совместимой с использованием компонентов архитектуры.
  • Некоторые устаревшие классы удалены по мере того, как мы отходим от старых API-интерфейсов до версии V14, таких как android.support.v7.NotificationCompat (вместо этого используйте NotificationCompat v4), KeyEventCompat , ParallelExecutorCompat и SearchViewCompat .
  • Все перенесенные константы метаданных манифеста износа теперь доступны через android.support.wear.utils.MetadataConstants .
  • Поддержка режима Ambient теперь доступна для всех действий, а не только для WearableActivity. Дополнительные сведения см. в справочнике AmbientMode .
  • RoundedDrawable теперь поддерживает инфляцию XML.

Исправления ошибок

  • Приложение вылетает из-за библиотеки поддержки 27 и загружаемого шрифта.
  • Загружаемые шрифты не работают в новых проектах, созданных после обновления SDK.
  • API SpeechRecouncer API не работает в последнем обновлении
  • Сбой, связанный с фрагментом, во время отрисовки после удаления анимированного представления.
  • поддержка-leanback-демо воспроизведение мультимедиа не работает
  • Библиотека поддержки Android добавляет <метаданные> в манифест
  • FontResourcesParserCompat должен понимать Android: attrs
  • Leanback Glue не поддерживает клавишу ввода паузы
  • Неразрешенный символ в IDE, когда несколько пакетов имеют один и тот же идентификатор артефакта.
  • Исключение нулевого указателя в CarExtender
  • Неправильный режим перемешивания/повтора установлен в PlaybackState после создания MediaController
  • Плакаты по умолчанию кластера библиотеки переходят на следующий кластер во время навигации
  • Метаданные карточки рекомендации обрезаны.
  • IllegalArgumentException в RecyclerView.attachViewToParent()
  • ClassNotFoundException при демаршаллинге SavedState (проблема AOSP 37133281 )
  • Фокус застревает в RecyclerView
  • Исправьте ANR в Leanback LayoutManager.

Выпуск версии 26.1.0

(сентябрь 2017 г.)

Это специальный выпуск для интеграции библиотеки поддержки с жизненными циклами компонентов архитектуры . Если вы не используете библиотеку Lifecycles, вам не нужно обновляться с версии 26.0.2. Дополнительные сведения см. в примечаниях к выпуску компонентов архитектуры .

Важные изменения

Выпуск версии 26.0.2

(август 2017 г.)

Исправления ошибок

  • Значки меню в библиотеке поддержки 26.0.0 сведены к минимуму.
  • GuidedAction.multilineDescription не работает должным образом с Leanback.

Выпуск версии 26.0.1

(август 2017 г.)

Исправления ошибок

  • FontCompat 26.0.0 аварийно завершает работу на устройствах O-MR1
  • Библиотека поддержки дизайна версии 26.0.0 не должна включать поддержку мультидекса (проблема 63999442 ))
  • AppBarLayout теперь имеет 300 пикселей левого заполнения с версии 26.0.0.
  • Навигация PlaybackTransportControl не работает.
  • Fragment.onCreateView вызывается незадолго до завершения onCreate.
  • android.os.BadParcelableException: ClassNotFoundException при демаршаллинге: android.support.v4.media.MediaMetadataCompat

Выпуск версии 26.0.0

(июль 2017 г.)

Важно! Библиотеки поддержки теперь доступны в репозитории Google Maven. Вам не нужно загружать репозиторий поддержки из SDK Manager. Дополнительные сведения см. в разделе Настройка библиотеки поддержки .

Важные изменения

  • Минимальная версия SDK была увеличена до 14. В результате многие API, существовавшие только для совместимости с уровнями API до 14, были признаны устаревшими. Клиентам этих API следует перейти на эквиваленты их платформы, как указано на справочной странице для каждого устаревшего API.
  • Библиотека пользовательского интерфейса Wear содержит классы, которые помогут вам реализовать шаблоны и макеты, работающие на устройствах Wear. Дополнительные сведения см. в разделе Использование библиотеки пользовательского интерфейса Wear .
  • Модуль процентной поддержки устарел. Клиентам этого модуля следует перейти на новый виджет ConstraintLayout , который предоставляется как отдельный артефакт в SDK Manager.
  • android.support.v7.app.NotificationCompat и содержащиеся в нем классы устарели и будут удалены в будущем выпуске:

Новые API

  • Новый логический флаг fastScrollEnabled для RecyclerView . Если этот параметр включен, необходимо установить fastScrollHorizontalThumbDrawable , fastScrollHorizontalTrackDrawable , fastScrollVerticalThumbDrawable и fastScrollVerticalTrackDrawable .

Различия API

Исправления ошибок

  • Бесконечный цикл в RecyclerView.toString()
  • ResourceNotFoundException запускает проект Kotlin на API 16 AVD после обновления до Canary 6
  • java.lang.AssertionError в режиме дизайна с библиотекой поддержки 26.0.0-beta2
  • Предварительный просмотр макета Android Studio не работает для виджетов библиотеки поддержки
  • Preference.setSingleLineTitle() игнорируется, если предпочтение не было создано с атрибутами.
  • Аннотации DAC "Since" неверны для версий 25.3.0/25.4.0 библиотеки поддержки.
  • ResourcesCompat.getFont() выдает исключение
  • Название панели инструментов не выделено жирным шрифтом
  • Автоматическое определение размера с помощью maxLines дает неожиданные результаты
  • NullPointerException в TextView.checkForRelayout()
  • AppCompatTextViewAutoSizeHelper.setRawTextSize() вызывает requestLayout() во время макета
  • Сбой EmojiAppCompatTextView
  • Autosize TextView не регулируется автоматически при изменении текста
  • Повреждение экрана в Instacart
  • Исключение UnsupportedOperationException в MenuItemCompat
  • NotificationCompat не полностью извлекает действия в API 24 или выше.
  • Проблемы привязки координатораLayout при обновлениях макета