如何在leanback BrowseFragment中实现两个PageRow之间的转换?

时间:2018-01-07 01:27:07

标签: android-tv leanback

我使用leanback BrowseFragment来实现一个简单的Android电视应用。我有两个由自定义片段支持的PageRows。当我在浏览导航区域中切换两者时,屏幕的内容侧会在新片段的视图出现之前短暂变为空白。如何在没有延迟的情况下从一个视图淡入另一个视图?

我看到了一些关于"入口转换"在我认为是我需要的文档中,但是我无法找到在这些回调中做什么的任何示例。

https://developer.android.com/reference/android/support/v17/leanback/app/BrowseFragment.MainFragmentAdapter.html#setEntranceTransitionState(boolean)

我尝试在我的PageRow Fragment的MainFragmentAdapter上实现setEntranceTransitionState,但它永远不会被调用:

class GuideFragment: Fragment(), BrowseFragment.MainFragmentAdapterProvider {
    val fragmentAdapter = object: BrowseFragment.MainFragmentAdapter<GuideFragment>(this) {
        override fun setEntranceTransitionState(state: Boolean) {
            Log.v("TEST", "setEntrance($state)")
            fragment.setEntranceTransitionState(state)
        }
    }
    override fun getMainFragmentAdapter() = fragmentAdapter
}

1 个答案:

答案 0 :(得分:0)

使用BrowseSupportFragment时无法执行此操作。

如果查看swapToMainFragment()的实现,您会看到滚动内容时设置为空片段。到达SCROLL_STATE_IDLE时,将使用常规片段事务将子片段替换为新内容。