Share This
Связаться со мной
Крути в низ
Categories
//Обновление Android Jetpack: Activity Result API и рефакторинг Fragment

Обновление Android Jetpack: Activity Result API и рефакторинг Fragment

11.02.2021Category : My Habr

obnovlenie android jetpack activity result api i refaktoring fragment 4d3136b - Обновление Android Jetpack: Activity Result API и рефакторинг Fragment

Привет! С вами Android Broadcast. Прошли 2 недели и очередной релиз библиотек Jetpack от Google уже с нами. Вышло долгожданное исправление множества багов в Fragment из-за рефакторинга внутри FragmentManager, Activity Result API и много другого. Все самое интересное вы найдете ниже, а все подробности на сайте

Если вы хотите узнавать про последние новости Android разработки сразу, тогда подпишитесь на Telegram канал Android Broadcast или следите за ними в формате видео на YouTube канале, а также подкасте

Activity 1.2.0

Все изменения здесь

  • Activity Result API – новое API для получения результата вызова Activity

val getContent = registerForActivityResult(GetContent()) { uri: Uri? -> // Handle the returned Uri } override fun onCreate(savedInstanceState: Bundle?) { // … val selectButton = findViewById<Button>(R.id.select_button) selectButton.setOnClickListener { // Pass in the mime type you’d like to allow the user to select // as the input getContent.launch(“image/*”) } }

  • ComponentActivity теперь реализует ContextAware, что позволяет асинхронно получить Context до вызова Activity.onCreate(). Поддержка Coroutine уже добавлена

  • Backport метода Activity.reportFullyDrawn(), который теперь работает на всех версиях API, исправлены баги и добавлен трейсинг

  • Добавлена поддержка ViewTreeLifecycleOwner

Fragment 1.3.0

Все изменения здесь

  • Большой рефакторинг внутри FragmentManager, который исправил множество багов в работе Fragment. Подробности читайте в статье от Ian Lake

  • Интеграция Activity Result API

  • Новое API для передачи результата между двумя Fragment

// Fragment1 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // Use the Kotlin extension in the fragment-ktx artifact setFragmentResultListener(“requestKey”) { requestKey, bundle -> // We use a String here, but any type that can be put in a Bundle is supported val result = bundle.getString(“bundleKey”) // Do something with the result } }// Fragment 2 button.setOnClickListener { val result = “result” // Use the Kotlin extension in the fragment-ktx artifact setFragmentResult(“requestKey”, bundleOf(“bundleKey” to result)) }

  • FragmentOnAttachListener – замена onAttachFragment() из FragmentActivity и Fragment, которая позволяет делегировать событие различным компонентам.

  • Стандартные эффекты анимаций TRANSITION_* теперь используют Animator вместо Animation

  • Улучшения FragmentScenario

  • Fragment.setRetainInstance() теперь deprecated. Используйте ViewModel.

  • Добавлена поддержка ViewTreeLifecycleOwner

  • Адаптеры, использующие Fragment, для ViewPager 1 теперь deprecated. Мигрируйте на ViewPager 2.

Lifecycle 2.3.0

Все изменения здесь

  • SavedStateHandle теперь поддерживает не parcelable классы

  • LifecycleRegistry теперь использует DESTROYED как последнее состояние

  • LifecycleRegistry теперь проверяет что методы вызываются на главном потоке, в противном случае – креш

  • Добавлены методы downFrom(State), downTo(State), upFrom(State), upTo(State)  для генерации события, чтобы перевести Lifecycle в нужное состояние необходимой последовательностью событий.

  • Новое API ViewTreeLifecycleOwner, которое позволяет получить LifecycleOwner and ViewModelStoreOwner, основываясь куда добавлена View. Например, это уже реализовано в Activity 1.2.0 и Fragment 1.3.0.

  • Kotlin расширение LiveData.observe() теперь deprecated. Оно больше не нужно из-за появления SAM для Kotlin интерфейсов.

SavedState 1.1.0

Все изменения здесь

  • Добавлено API ViewTreeSavedStateRegistryOwner, которое позволяет получить SavedStateRegistry на основе View.

  • savedstate-ktx

Core Role 1.0.0

Все изменения здесь

  • Добавлено API RoleManagerCompat

  • 1 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Свежие комментарии

    Рубрики

    About Author 01.

    Roman Spiridonov
    Roman Spiridonov

    Привет ! Мне 38 лет, я работаю в области информационных технологий более 4 лет. Тут собрано самое интересное.

    Our Instagram 04.

    Categories 05.

    © Speccy 2020 / All rights reserved

    Связаться со мной
    Close