如何使Android TV BrowseFragment界面仅显示一行(例如YouTube应用)?
这是我的代码的基本结构:
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组件:https : //github.com/dextorer/BuildingForAndroidTV
您将能够复制YouTube电视应用提供的UI结构。
更新
我编写了一个简单的库,该库扩展了Leanback,并提供了更简化(且更可靠)的自定义。这里是:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句