如何让 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 并提供了更简化(和可靠)的自定义。这里是:

Sofa

关于android - 如何使只有一行可见的 BrowseFragment,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30629982/

10-10 09:35