Fra*_*ega 3 android gridview android-tv leanback
Android 的 Leanback 库提供了一些自定义 RowFragment 的标准方法,包括 Rows 和 Cards 本身,但我不确定如何在框架提供的内容之外添加自定义元素。
我特别想要实现的是向一行添加一个 FooterItem,类似于每一行都有一个 HeaderItem。
我想获得 ListRowView/ListRowPresenter 中的现有功能,但我不确定如何“正确”执行此操作。
与几乎所有带有 的东西一样Leanback
,给猫剥皮的方法不止一种。
我们需要自定义ListRow
以向标题添加更多填充。我们已经通过重写达到了这个级别的自定义onBindRowViewHolder
的ListRowPresenter
,抓住了View
页眉(通过View header = holder.getHeaderViewHolder().view;
)。然后我们用 改变了它的高度header.getLayoutParams().height = rowItem.getRowHeaderHeight();
。
使用相同的技术,您可以将页脚视图动态添加到holder.view
(with addView
)。
另一种方法是遵循文档的RowPresenter
建议。相关报价是:
当 RowPresenter 的子类添加 UI 小部件时,它应该子类化 RowPresenter.ViewHolder 并覆盖 createRowViewHolder(ViewGroup) 和 initializeRowViewHolder(ViewHolder)。子类必须为小部件使用布局 ID“row_content”,该小部件将与父片段中可能存在的任何 HeadersFragment 的标题对齐。
因此,使用这种新推荐的方法,您基本上将提供您自己的 xml。我相信你甚至可以子类ListRowPresenter
。要查看代码如何工作,ListRowView
请查看它是否为 .xml 膨胀了 xml R.layout.lb_list_row
。然后它只使用R.id.row_content
.
然后这将是由提供的实际视图,holder.view
然后您可以在其上设置文本并执行任何您想要的操作。
如果您需要进一步说明,请告诉我。
归档时间: |
|
查看次数: |
3305 次 |
最近记录: |