我正在构建一个Android应用程序,并且在一个部分中,列出了我制作的一系列卡片碎片,并将其加载到屏幕中。这些片段使用片段管理器过渡从右边输入,但是它们一次都这样做。我想让他们按顺序输入,因为感觉更自然,但我不知道如何输入。代码在下面发布。
fun updateResultsActivity() {
// Add fragments to container
for (i in 0 until placesList.size) {
fragmentManager.beginTransaction().setCustomAnimations(R.animator.enter_from_right, R.animator.exit_to_left)
.add(R.id.layout_container, fragmentList[i]).commit()
}
updateShowMoreButton()
}
我尝试添加sleep()行,使该函数仅添加一个片段并将所述函数放入循环,而其他似乎没有任何作用。欢迎任何建议,所以在此先谢谢您!
答案 0 :(得分:1)
我不确定这是否是您期望的行为,但是您可以在初始化UI组件时创建与主循环程序关联的Handler,然后可以发布带有片段事务的可延迟运行。
val handler = Handler(Looper.getMainLooper())
for (i in 0 until placesList.size) {
handler.postDelayed({
fragmentManager.beginTransaction().setCustomAnimations(R.animator.enter_from_right, R.animator.exit_to_left)
.add(R.id.layout_container, fragmentList[i]).commit()
}, 1000*i)
}