Je veux faire un onglet sur le haut de l'écran comme celui-ci:Android TV comment faire un onglet sur le haut de l'écran?
Je sais que tabLayout et viewPager peuvent le résoudre au téléphone. Cependant, comment faire sur la télévision Android?
Je veux faire un onglet sur le haut de l'écran comme celui-ci:Android TV comment faire un onglet sur le haut de l'écran?
Je sais que tabLayout et viewPager peuvent le résoudre au téléphone. Cependant, comment faire sur la télévision Android?
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.
Pouvez-vous s'il vous plaît fournir le code complet ici? –