WindowInset с переходом общего элемента фрагмента - PullRequest
0 голосов
/ 29 мая 2018

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

Я использую приведенный ниже код.

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
    val view = layoutInflater?.inflate(R.layout.onboarding_layout, container, false)

    return view
}

override fun onActivityCreated(savedInstanceState: Bundle?) {
    super.onActivityCreated(savedInstanceState)

    ViewCompat.setOnApplyWindowInsetsListener(appimageviewLogo) { view, insets ->
        val params = view.layoutParams as ViewGroup.MarginLayoutParams
        params.topMargin = params.topMargin + insets.systemWindowInsetTop
        insets
    }

    ViewCompat.setOnApplyWindowInsetsListener(appbuttonSkip) { view, insets ->
        val params = view.layoutParams as ViewGroup.MarginLayoutParams
        params.bottomMargin = params.bottomMargin + insets.systemWindowInsetBottom
        insets.consumeSystemWindowInsets()
    }

    ViewCompat.requestApplyInsets(appimageviewLogo)
    ViewCompat.requestApplyInsets(appbuttonSkip)
}

Может ли кто-нибудь помочь мне здесь?

Как я могусначала применить вставку окна перед выполнением перехода элемента Shared, чтобы "прыжок" не происходил?

1 Ответ

0 голосов
/ 01 июня 2018

Так что в основном я отвечу на свой вопрос.Решением было отложить enterTransition входящего фрагмента, затем запросить вставку окна, а затем запустить postponedEnterTransition.

Все это я получил из публикации Андраника Азизбекяна в Medium.Вы можете посмотреть его пост здесь об оконных вставках здесь и здесь - это ссылка на мои вопросы и его ответ на эти вопросы.:)

Примечание: чтобы отложить ввод перехода для работы с фрагментами, setReorderingAllowed должен быть установлен в значение true с FragmentTransaction.

...