【问题标题】:How to implement transition between two PageRow in leanback BrowseFragment?如何在leanback BrowseFragment中实现两个PageRow之间的转换?
【发布时间】:2018-06-16 10:37:42
【问题描述】:

我正在使用一个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
}

【问题讨论】:

  • 您可能需要检查这个BrowseFragment.BrowseTransitionListener 类,它是一个listener,用于浏览标题和行之间的转换。这是使用setEntranceTransitionStateexample
  • 谢谢,但 BrowseTransitionListener 用于显示和隐藏导航标题的转换。当标题仍然显示在屏幕上时,我正在寻找在标题之间切换时的过渡。

标签: android-tv leanback


【解决方案1】:

使用 BrowseSupportFragment 时无法做到这一点。

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

【讨论】:

    猜你喜欢
    • 2019-03-09
    • 1970-01-01
    • 1970-01-01
    • 2016-08-02
    • 2021-06-16
    • 2019-05-11
    • 2015-09-21
    • 2018-05-21
    • 1970-01-01
    相关资源
    最近更新 更多