Próbuję utworzyć aplikację Android TV podobną do aplikacji Youtube. i używam biblioteki Sofa, aby to zrobić. Teraz problem pojawia się, gdy próbuję wyświetlić nagłówki poszczególnych elementów w RowsFragment
, nawet gdy RowsFragment
nie ma fokusu. Poniżej znajduje się kod do ładowania zestawu danych do browseFragmentjak zawsze wyświetlać nagłówki w RowsFragment
private void loadRowsCustom() {
adapter = new ArrayObjectAdapter();
int split = 3;
int rowsFragmentCount = videoList.size()/split + (videoList.size() % split != 0 ? 1 : 0);
for (int i = 0; i < rowsFragmentCount; i++) {
ListRowPresenter lrp = new ListRowPresenter(FocusHighlight.ZOOM_FACTOR_LARGE);
ArrayObjectAdapter rowsAdapter = new ArrayObjectAdapter(lrp);
String category = "Category";
for (int j = 0; j < split && (i * split + j) < videoList.size(); j++) {
Video[] videos = videoList.get(i * split + j);
ArrayObjectAdapter rowCollAdapter = new ArrayObjectAdapter(new VideoPresenter());
rowCollAdapter.addAll(0, Arrays.asList(videos));
ListRow row = new ListRow(new HeaderItem(videos[0].category),rowCollAdapter);
rowsAdapter.add(row);
category = videos[0].category;
}
ArrayObjectAdapter fragmentAdapter = new ArrayObjectAdapter();
RowsSupportFragment rowsSupportFragment = new RowsSupportFragment();
rowsSupportFragment.setAdapter(rowsAdapter);
rowsSupportFragment.enableRowScaling(false);
fragmentAdapter.add(rowsSupportFragment);
adapter.add(new ListRow(new HeaderItem(category), fragmentAdapter));
}
browseSupportFragment.setAdapter(adapter);
browseSupportFragment.setHeadersState(BrowseSupportFragment.HEADERS_ENABLED);
browseSupportFragment.setOnSearchClickedListener(searchClickListener);
browseSupportFragment.setOnItemViewClickedListener(browseClickListener);
browseSupportFragment.setTitle("Google Videos");
}
Wymagana i aktualna realizacja jest opisane jak w screeny poniżej:
jak rozwiązali ten problem? proszę wyjaśnić, ponieważ chcę zrobić coś podobnego w mojej aplikacji telewizyjnej. –
To nie działa w moim przypadku. Czy możesz umieścić swój kod na Github? –