2016-11-23 53 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

你能在這裏提供完整的代碼嗎? –