首页 > 解决方案 > 时序片段转换 - Android

问题描述

我正在构建一个 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() 行,使该函数仅添加一个片段并将所述函数置于一个循环中,而其他的似乎没有任何效果。欢迎任何建议,所以提前谢谢你!

标签: androidandroid-fragmentsanimationkotlintransitions

解决方案


我不确定它是否是期望的行为,但是您可以在初始化 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)
}

推荐阅读