【发布时间】:2021-02-25 18:12:33
【问题描述】:
我想等到我的数据准备好再显示我的视图,以便我的 SharedElementTransitions 可以正确执行。
不幸的是,使用此代码,如果 data 是从 Flow::asLiveData() 获得的 LiveData,则永远不会调用 startPostponedEnterTransition。
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
postponeEnterTransition()
viewModel.data.observe(viewLifecycleOwner) {
adapter.setData(it)
(view.parent as? ViewGroup)?.doOnPreDraw {
startPostponedEnterTransition()
}
}
}
我应该怎么做才能等到我的数据加载完毕后再调用startPostponedEnterTransition()。我已经尝试了很多东西,但没有任何效果。
【问题讨论】:
-
这听起来像this issue,它在 Fragment 1.3.0-alpha08 或更高版本中的new state manager 中得到了修复。您使用的是哪个版本的 Fragments?
-
您是否尝试在
onCreateView中定义您的观察者? -
@ianhanniballake 哦,天哪,谢谢你让我知道。我使用的是 1.2.5。我会更新到最新的 alpha 看看它是否有效!!!
标签: android kotlin android-livedata kotlin-coroutines android-transitions