Je crée une application Android TV et souhaite ajouter des vues à VerticalGridFragment. Est-ce possible et comment? J'utilise leanback library version 25.0.0. Merci pour toutes les réponses.Android TV. Ajouter des vues personnalisées à VerticalGridFragment
Répondre
L'exemple leanback-showcase fourni par l'équipe Leanback a un bon exemple sur la façon de procéder. Je vous recommande fortement de cloner ce repo et de jouer dans ce projet.
Vous voudrez fondamentalement initialiser un Adapter
avec un Presenter
qui sait comment présenter les vues que vous souhaitez afficher dans votre liste. This class ici a un exemple précis de exactement ce que vous cherchez.
Dans l'exemple, ils utilisent un PresenterSelector
, mais si votre liste est homogène (soutenu par un seul modèle), alors vous pouvez passer en un seul Presenter
directement dans le Adapter
- comme le Presenter
here.
Dans le code - première configuration de votre réseau présentateur
VerticalGridPresenter gridPresenter = new VerticalGridPresenter(ZOOM_FACTOR);
gridPresenter.setNumberOfColumns(COLUMNS);
setGridPresenter(gridPresenter);
Ensuite, configurez votre adaptateur sur le VerticalGridFragment
PresenterSelector cardPresenterSelector = new CardPresenterSelector(getActivity());
mAdapter = new ArrayObjectAdapter(cardPresenterSelector);
setAdapter(mAdapter);
Puis ajouter des modèles à votre Adapter
private void createRows() {
String json = Utils.inputStreamToString(getResources()
.openRawResource(R.raw.grid_example));
CardRow row = new Gson().fromJson(json, CardRow.class);
mAdapter.addAll(0, row.getCards());
}
Ceci est l'utilisation par défaut. J'ai besoin d'ajouter des vues personnalisées à ce fragment (FastScroller). Pas dans VerticalGridView. Y'a-t'il un quelconque moyen d'y arriver? –
Vous ne pouvez pas placer une vue imbriquée sous VerticalGridView qui n'est pas présentée par le présentateur. Vous pouvez utiliser un PresenterSelector pour présenter différents types de vues (qui sont sauvegardés par différents modèles). Mais si vous souhaitez ajouter quelque chose qui ne figure pas dans la liste, vous devez ajouter la vue en dehors de VerticalGridView. –
Veuillez lire mon commentaire précédent. Je veux ma vue en dehors de VerticalGridView. Comment puis-je faire ça exactement? –