【发布时间】:2015-08-18 05:55:16
【问题描述】:
如何制作像 YouTube 应用一样只有一行可见的 Android TV BrowseFragment 界面?
这是我的代码的基本结构:
BrowseFragment browseFragment = BrowseFragment.getInstance();
browseFragment.setHeadersState(BrowseFragment.HEADERS_ENABLED);
browseFragment.setTitle(getString(R.string.AplicationName));
browseFragment.setBadgeDrawable(ContextCompat.getDrawable(this, R.drawable.badge));
ArrayObjectAdapter rowsAdapter = new ArrayObjectAdapter(new ListRowPresenter());
for ( int i = 0; i < itemsCount; ++i ) {
HeaderItem header = new HeaderItem(i, "Header" + items[i].title);
ArrayObjectAdapter rowAdapter = new ArrayObjectAdapter(new CardPresenter());
for ( int i = 0; i < subitemsCount; ++i ) {
rowAdapter.add(subitems[i]);
}
rowsAdapter.add(new ListRow(header, rowAdapter));
}
browseFragment.setAdapter(rowsAdapter);
这会生成左侧的所有标题,但不是一个可见的项目行,而是一个包含所有行的网格,就像示例应用程序一样:
【问题讨论】:
-
你会发现 BrowseFragment 类(包含在leanback 库中)有关于如何自定义 HeadersFragment 和 RowsFragment 的注释提示和说明。您必须扩展 MainFragmentAdapterRegistry 类。
标签: android android-tv