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

前端之家收集整理的这篇文章主要介绍了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相关文章