android电视项目的leanback支持库似乎是标准化电视体验的一个很好的尝试。但是,我发现它有点太僵化了,并且限制了定制,而不是像配色方案之类的次要定制。
我的问题是:在不重写leanback框架的关键部分的情况下,定制detailsFragment等屏幕的最佳、最有效的方法是什么?
背景资料
默认的详细信息屏幕如下:
我想做的一些事情:
将一个或两个附加视图放置在detailsOverwrow下面
(图像、标题/说明、操作按钮)显示额外信息
独特的应用程序设计(例如一个表情反应面板
和电影信用面板-主要是缩略图和名称文本
电影创作者的观点)
正确裁剪卡片缩略图图像,使其完全适合其图像视图。该图像当前被剪裁,而不是在浏览器屏幕卡视图中,它很好地适应卡视图。库的xmllayout file定义了一个相当小的container size(固定
高度274dp),这可能就是为什么图像没有
适当裁剪
我试过的
扩展DetailsOverViewRowPresenter
以扩展定义其他视图的自定义xml文件。不幸的是,这个类隐藏了它的键初始值设定项方法,createRowViewHolder->private initDetailsOverview(ViewHolder vh)
,所以我必须复制这样的隐藏但键方法,这对我来说违背了子类化的要点。有没有比重新创建这样的代码更好的方法?
注意:这个方法可能类似于这个相关的question中发布的方法,但是op没有进一步详细说明。
最佳答案
我最终没有实现细节屏幕。但看起来更新后的leanback库现在支持某种程度的定制。github上的google-samples leanback project是一个不错的起点。例如:VideoDetailsFragment
子类DetailsFragment
。
此外,本文中讨论的其他定制可能性值得注意