【问题标题】:GridView populating out of order in LeanbackGridView 在 Leanback 中无序填充
【发布时间】:2016-06-23 02:24:04
【问题描述】:

我正在努力将每个类别的多行添加到我正在开发的 Leanback (Android TV) 项目中。但是,我看到填充行的方式有奇怪的行为。我使用的代码有效,它来自一个教程,在这里:

http://corochann.com/browsefragment-listrow-customization-android-tv-application-hands-on-tutorial-18-705.html

通过将行传递到您在教程中创建的自定义Presenter 来加载行。以下是该部分的功能:

        int numRows = ((CustomListRow) item).getNumRows();
        ((ListRowPresenter.ViewHolder) holder).getGridView().setNumRows(numRows);

        super.onBindRowViewHolder(holder, item);

但是,当gridView() 在运行时填充时,它会从上到下而不是从左到右填充项目。有没有办法修复或调整该行为,以便将它们从左到右添加到 gridvew 中,就像应该的那样?

为了更好地参考,这里有两个屏幕截图。在这两个屏幕截图中,我正在加载相同的一组项目:

[1] A normal row. Items load from left-to-right

[2] The multiple row implementation. Items load from top-to-bottom

【问题讨论】:

  • 你能解决这个问题吗?
  • 我想我最终覆盖了评论并以这种方式改变了行为。不过那是不久前的事了,所以我不能确定。

标签: android gridview android-tv leanback


【解决方案1】:

就我而言,我看到了不同的顺序,因为某些 ViewHolders 中的视图具有不同的高度,具体取决于它们的内容。可能是你的情况,尝试在CardView上设置一个固定高度

【讨论】:

    【解决方案2】:

    尝试通读BrowseFragment ListRow,它用于通过视频库显示。 Leanback 库中的 BrowseFragment 类允许您使用最少的代码创建用于浏览类别和媒体项行的主要布局。 BrowseFragment 基本上呈现您提供的数据行。

    我可以建议您扫描有关如何创建Catalog Browser 的文档,并尝试遵循 Google 提供的codelab。您将了解如何使用 Leanback 库为 Android TV 快速启用移动应用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-27
      • 1970-01-01
      相关资源
      最近更新 更多