我正在努力为我正在开发的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()在运行时填充时,它会按从上到下而不是从左到右的顺序填充项目。有没有一种方法可以修复或调整这种行为,使它们像应该的那样从左到右添加到网格中?
为了更好的参考,这里有两个截图。在这两个屏幕截图中,我加载了相同的项目集:
[1] A normal row. Items load from left-to-right
[2] The multiple row implementation. Items load from top-to-bottom
发布于 2021-12-28 14:51:01
在我的例子中,我看到了不同的顺序,因为一些ViewHolders中的视图具有不同的高度,这取决于它们的内容。这可能是你的情况,试着在CardView上放置一个固定的高度
发布于 2016-06-27 02:28:47
尝试通过它通过视频库显示的BrowseFragment ListRow进行读取。Leanback库中的BrowseFragment类允许您使用最少的代码创建浏览类别和媒体项目行的主要布局。BrowseFragment基本上呈现您提供的数据行。
我建议你浏览一下如何创建Catalog Browser的文档,并尝试使用谷歌提供的codelab。您将了解如何使用Leanback库快速为Android TV启用移动应用程序。
https://stackoverflow.com/questions/37981302
复制相似问题