2016-11-23 86 views

回答

0

有几种方法可以做到这一点 - 但我认为最简单的答案是不管你做什么,它都必须是自定义的。到目前为止,leanback是Google为任何电视特定组件提供的唯一框架,该框架仅为您提供左导航抽屉。

我可以提供一个解决方案,如果您使用leanback。您可以将BrowseFragment与自定义TitleView一起使用,其中包含选项卡并跟踪选项卡的焦点。只要您的自定义视图实现了TitleViewAdapter.Provider,那么您可以使用BrowseFragment作为TitleView。这样做的好处是你可以自动地从顶部进出动画,只需少量额外的工作。

对于自定义视图中,可以在每个选项卡上指定focusRight和focusLeft和具有听者onFocusonClick换出片段在BrowseFragmentThis class in leanback显示如何交换BrowseFragment(特别是PageRowFragmentFactory)中的片段。

我强烈建议你克隆Android团队整合并玩的leanback showcase app

对于定制titleview的的细节,它会看起来像下面:


创建自定义视图

class YourTitleView extends RelativeLayout implements TitleViewAdapter.Provider { 
    ... do custom view setup/logic here ... 
} 

创建一个名为lb_browse_title.xml的XML文件。这覆盖leanback的布局,他们用它来创建他们的TitleView。

将您的标题视图置于此lb_browse_title.xml文件中,并确保它的标识为@+id/browse_title_group。这是leanback知道抢你的标题视图。

<com.your.android.app.views.YourTitleView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/browse_title_group" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    style="?attr/browseTitleViewStyle" /> 

然后创建一个扩展BrowseFragment片段,它会自动套用您的标题视图。请参阅leanback-showcase应用程序了解如何获取并运行BrowseFragment

+0

你能在这里提供完整的代码吗? –