WindowInset с переходом общего элемента фрагмента
Я пытаюсь добавить переход общего элемента к моему фрагменту, который создаст что-то вроде центрированного логотипа сверху. Я сделал это успешно с общим переходом элемента, но логотип также применяет некоторую вставку окна. Проблема в том, что только после завершения перехода к общему элементу применяется вставка окна. Это делает вид, будто взгляды переходят в свою конечную позицию.
Я использую код ниже.
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 ответ
В общем, я отвечу на свой вопрос. Решение состояло в том, чтобы отложить enterTransition входящего фрагмента, затем запросить вставку окна, а затем запустить postponedEnterTransition.
Я получил все это с поста Андраника Азизбекяна в Medium. Вы можете посмотреть его пост здесь об оконных вставках здесь, а здесь - ссылка на мои вопросы и его ответ на эти вопросы.:)
Примечание. Чтобы отложить ввод перехода для работы с фрагментами, для setReorderingAllowed должно быть установлено значение true с FragmentTransaction.