gpt4 book ai didi

android - BrowseFragment 上每个 header 的多个 ListRow - Leanback 库

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:18:54 25 4
gpt4 key购买 nike

我开始为我们的应用程序提供 Leanback 支持。根据 UI 要求,我需要添加与每个标题相对应的多个列表行,这与 Youtube 应用程序在 Android TV 上所做的完全一样。默认 ListRowPresenter 似乎只呈现一个列表行及其标题。是否有任何演示者支持多个列表行?我正在考虑创建一个自定义演示者,并在每个项目中嵌入 RowsFragment,如果我的方法有误,请纠正我。 enter image description here

最佳答案

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

BrowseFragment 中需要一个新的 PageRowFragmentFactory,它指定哪些 fragment 映射到哪些 HeaderItem。像这样:

    @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 的实例,现在您将拥有包含多个 ListRowRowsFragment映射到一个 HeaderItem

截至目前,您可以通过 Leanback 的 24.0.0 版在您的 gradle 文件中使用以下行来访问此优点:

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

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

Leanback 24.0.0 版中还有许多其他非常酷的东西,例如时髦的过渡动画和更简洁的 API。这些都可以在我上面链接的示例项目中找到。还有一个talk from Google I/O其中涵盖了更多新增内容。

关于android - BrowseFragment 上每个 header 的多个 ListRow - Leanback 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31202041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com