3

Android TV 项目的leanback 支持库似乎是标准化电视体验的一项很好的努力。但是,我觉得它有点过于死板,并且限制了除了颜色方案等次要的定制之外。

我的问题:在不重写leanback 框架的关键部分的情况下,自定义诸如DetailsFragment 之类的屏幕的最佳、最有效的方法是什么?

背景资料

默认的详细信息屏幕如下所示:

我希望能够做的一些事情:

  1. 在 DetailsOverViewRow(图像、标题/描述、操作按钮)下方放置一个或两个附加视图,以显示我们应用程序设计独有的额外信息(例如,表情符号反应面板和电影制作人员面板 - 主要是电影的缩略图和名称文本视图创作者)
  2. 正确裁剪卡片缩略图以完全适合其图像视图。图像当前被剪裁,不像在浏览器屏幕卡片视图中它很好地适合卡片视图。该库的xml 布局文件定义了一个相当小的容器大小(固定高度为 274dp),这可能是图像未正确裁剪的原因

我试过的

扩展DetailsOverViewRowPresenter以能够扩展定义附加视图的自定义 XML 文件。不幸的是,这个类隐藏了它的关键初始化方法,createRowViewHolder->private initDetailsOverview(ViewHolder vh)所以我不得不复制这些隐藏的关键方法,这对我来说破坏了子类化的意义。有没有比重新创建这样的代码更好的方法?注意:这种方法可能类似于在这个相关问题中发布的方法,但 OP 没有进一步详细说明。

4

1 回答 1

2

我最终没有实现详细信息屏幕。但看起来更新后的leanback 库现在支持某种程度的定制。github 上的google-samples leanback 项目是一个不错的起点。例如:VideoDetailsFragment子类化DetailsFragment.

此外,本文中讨论的其他定制可能性值得注意

于 2017-11-24T08:19:07.967 回答