2016-11-23 2 views

Répondre

0

Il y a plusieurs façons de le faire - mais je pense que la réponse courte est que peu importe ce que vous faites, cela devra être personnalisé. Jusqu'à présent, leanback est le seul framework proposé par Google pour les composants spécifiques à la télévision et ce cadre ne vous fournit qu'un tiroir de navigation à gauche.

Je peux offrir une solution pour si vous utilisez leanback. Vous pouvez utiliser un BrowseFragment avec un TitleView personnalisé qui a des onglets et garde la trace de l'objectif des onglets à l'intérieur. Tant que votre vue personnalisée implémente TitleViewAdapter.Provider, vous pouvez l'utiliser avec un BrowseFragment comme TitleView. L'avantage est que vous pouvez l'animer automatiquement depuis et vers le haut avec peu de travail supplémentaire.

En ce qui concerne la vue personnalisée, vous pouvez spécifier focusRight et focusLeft sur chaque onglet et avoir un auditeur onFocus ou onClick d'échanger les fragments dans le BrowseFragment. This class in leanback montre comment échanger des fragments dans le BrowseFragment (en particulier PageRowFragmentFactory).

Je vous recommande vivement de cloner le leanback showcase app que l'équipe Android a mis en place et jouer dans ce domaine.

Pour les détails de la personnalisation du titleview, ça va ressembler à quelque chose comme ci-dessous:


Créer votre vue personnalisée

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

Créez un fichier XML nommé lb_browse_title.xml. Cela remplace la présentation de leanback qu'ils utilisent pour créer leur TitleView.

Placez votre vue de titre dans ce fichier lb_browse_title.xml et assurez-vous qu'il porte l'ID @+id/browse_title_group. Ceci est si leanback sait saisir votre vue de titre.

<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" /> 

Ensuite, créez un fragment qui étend BrowseFragment et il devrait appliquer votre vue titre automatiquement. S'il vous plaît se référer à l'application leanback-showcase pour savoir comment obtenir un BrowseFragment opérationnel.

+0

Pouvez-vous s'il vous plaît fournir le code complet ici? –