android – 对于BrowseFragment上的每个标题的多个ListRows – Leanback库

我正在开始为我们的应用程序提供Leanback支持.
根据UI要求,我需要添加与每个标题相对应的多个列表行,就像Youtube App在 Android TV上所做的一样.认的ListRowPresenter似乎只渲染一个列表行及其标题.是否有任何主持人支持多个列表行?我正在考虑在每个项目中嵌入RowsFragment创建自定义演示者的线条,如果我的方法错误的,请更正我.在这里欣赏任何帮助.谢谢

解决方法

Leanback团队最近添加了对图书馆版本24.0.0中的一个HeaderItem的多个ListRows的支持.它允许您提供映射到HeaderItem的RowsFragment.您可以在他们的 Leanback showcase中看到一个例子.具体来说,here是他们提供一个例子的文件.

在您的browseFragment中,您将需要一个新的PageRowFragmentFactory,它指定哪些Fragments映射到哪个HeaderItems.像这样:

@Override
    public Fragment createFragment(Object rowObj) {
        Row row = (Row)rowObj;
        mBackgroundManager.setDrawable(null);
        if (row.getHeaderItem().getId() == HEADER_ID_1) {
            return new SampleFragmentA();
        } else if (row.getHeaderItem().getId() == HEADER_ID_4) {
            return new WebViewFragment();
        }
        throw new IllegalArgumentException(String.format("Invalid row %s",rowObj));
    }

您可以使用上述方法返回RowsFragment的一个实例,现在您将RowsFragment包含多个ListRows映射到一个HeaderItem.

直到现在,您可以通过版本24.0.0的Leanback与您的毕业文件中的以下行获得此优点:

compile 'com.android.support:leanback-v17:24.0.0

您可能会收到警告,但现在可以安全地忽略.

在Leanback版本的24.0.0版中,还有一大堆其他非常酷的东西,就像snazzy过渡动画和更干净的API.可以在上面链接的示例项目中找到它.还有一个talk from Google I/O,涵盖更多的补充.

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...