使用 LeanBack 支持库自定义 Android TV 界面
Posted
技术标签:
【中文标题】使用 LeanBack 支持库自定义 Android TV 界面【英文标题】:Customizing Android TV Interfaces With LeanBack Support Library 【发布时间】:2016-07-16 14:18:29 【问题描述】:android TV 项目的leanback 支持库似乎是标准化电视体验的一项好工作。但是,我觉得它有点过于死板,并且限制了除了颜色方案等次要的定制之外。
我的问题:在不重写leanback 框架的关键部分的情况下,自定义诸如DetailsFragment 之类的屏幕最好、最有效的方法是什么?
背景信息
默认的详细信息屏幕如下所示:
一些我想做的事情:
-
在 DetailsOverViewRow 下方放置一个或两个附加视图
(图片、标题/描述、操作按钮)显示额外信息
我们应用程序设计的独特之处(例如表情符号反应面板
和电影学分面板 - 主要是缩略图和名称文本
电影创作者的观点)
正确裁剪卡片缩略图以完全适合其图像视图。图像当前被剪裁,不像在浏览器屏幕卡片视图中它很好地适合卡片视图。库的xml
layout file 定义了一个相当小的container size(固定
274dp 的高度),这可能就是为什么图像不是
正确裁剪
我的尝试
扩展 DetailsOverViewRowPresenter
以便能够扩展定义附加视图的自定义 XML 文件。不幸的是,这个类隐藏了它的关键初始化方法createRowViewHolder->private initDetailsOverview(ViewHolder vh)
,所以我不得不复制这些隐藏但关键的方法,这对我来说破坏了子类化的意义。有没有比重新创建这样的代码更好的方法?
注意:这种方法可能类似于此相关question 中发布的方法,但 OP 没有进一步详细说明。
【问题讨论】:
对于数字 1,我复制了来自 android leanback 库(AbstractDetailsDescriptionPresenter 类)提供的 Presenter,编辑了包括 xml 在内的一些部分,我使用我的类而不是来自leanback 的官方。但我正在使用 FullWidthDetailsOverviewRowPresenter。我猜它仍然相似 如果你解决了这个问题,能否分享一下你的解决方案? @khateeb 请在下面查看我的回答 【参考方案1】:我最终没有实现详细信息屏幕。但看起来更新后的leanback 库现在支持某种程度的定制。 github 上的google-samples leanback project 是一个不错的起点。例如:VideoDetailsFragment
是 DetailsFragment
的子类。
此外,medium post 中讨论的其他自定义可能性也值得注意
【讨论】:
我已经浏览了示例。它显示了如何在概览演示器内部进行修改。我也想知道如何在它之外进行修改。你能回答我的这个问题吗:***.com/questions/47473310/…以上是关于使用 LeanBack 支持库自定义 Android TV 界面的主要内容,如果未能解决你的问题,请参考以下文章