Android TV项目的leanback支持库似乎是标准化电视体验的良好尝试。然而,我认为它有点过于严格,除了像颜色方案等小的修改之外,限制了自定义。
我的问题是:在不重写leanback框架的关键部分的情况下,如何最好、最有效地定制DetailsFragment等屏幕?
背景信息
我想做一些事情:
- 在DetailsOverViewRow下方添加一个或两个额外的视图(图片、标题/描述、操作按钮),显示与我们应用程序设计独特相关的额外信息(例如表情符号反应面板和电影制作者缩略图图像和名称文本视图)。
- 正确裁剪卡片缩略图图像以完全适合其图像视图。目前,该图像被剪切,不像在浏览器屏幕卡片视图中那样完全适合卡片视图。库的xml布局文件定义了一个相当小的容器大小(固定高度为274dp),这可能是图像未被正确裁剪的原因。
我尝试过的方法
扩展DetailsOverViewRowPresenter
以便能够填充自定义的XML文件,该文件定义了附加视图。不幸的是,这个类隐藏了它的关键初始化方法createRowViewHolder->private initDetailsOverview(ViewHolder vh)
,所以我必须复制这样的隐藏但关键方法,这对我来说违背了子类化的目的。是否有比重新创建这样的代码更好的方法?
注意:这种方法可能类似于在此相关question中发布的一种方法,但OP没有进一步详细说明。