Używam domyślnego projektu dla Android TV. Poniżej znajduje się kod do tworzenia kart w moim BrowseFragment
:Jak korzystać z setRowViewSelected z ListRowPresenter
private void loadRows() {
List<Movie> list = MovieList.setupMovies();
ListRowPresenter mListRowPresenter = new ListRowPresenter();
mRowsAdapter = new ArrayObjectAdapter(mListRowPresenter);
mListRowPresenter.setRowViewSelected(/*HOW TO GET VIEWHOLDER HERE?*/, false);
CardPresenter cardPresenter = new CardPresenter();
int i;
for (i = 0; i < NUM_ROWS; i++) {
if (i != 0) {
Collections.shuffle(list);
}
ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(cardPresenter);
for (int j = 0; j < NUM_COLS; j++) {
listRowAdapter.add(list.get(j % 5));
}
HeaderItem header = new HeaderItem(i, MovieList.MOVIE_CATEGORY[i]);
mRowsAdapter.add(new ListRow(header, listRowAdapter));
}
setAdapter(mRowsAdapter);
}
Robię to, bo nie chce, aby pierwsza karta z rzędu dostać wybrany kiedy uruchomić aplikację. Powinien zostać wybrany tylko po naciśnięciu przycisku na Dpad. Jeśli nie mogę tego zrobić w ten sposób, co mam zrobić, aby uzyskać wspomniane zachowanie?
Możesz zażądaćFocus na innym elemencie na ekranie - podobnie jak SearchOrb. Lub dostosuj BackgroundManager, aby nie zawsze wyświetlał obraz w tle. –