在 Android TV 中如何实现 Header 的固定大小,如 Youtube TV App

Posted

技术标签:

【中文标题】在 Android TV 中如何实现 Header 的固定大小,如 Youtube TV App【英文标题】:In Android TV how to Implement fixed size of Header like Youtube TV App 【发布时间】:2019-06-15 22:47:14 【问题描述】:

在我的 TV App 中,我需要像 Youtube App 一样在 BrowseFragment 中实现固定的 Header。下面我附上了我想要的截图。

我纯粹是通过 Lean Back 实现的,我的片段通过浏览片段进行了扩展,并且我能够将图标和文本添加到我的标题项。

就像他们解释的下面的链接:

https://corochann.com/browsefragment-header-customization-android-tv-application-hands-on-tutorial-17-697.html

当焦点移到右侧时,我的标题完全折叠。就我而言,我想将标题折叠成很小的,并且只需要在标题中显示图标。

【问题讨论】:

到目前为止你尝试过什么?到目前为止,你做了多少研究?问题出在哪里?很简单XML,不是吗? 不,我正在使用纯靠背,我的片段使用 BrowseFragment 扩展,我可以添加图标和文本,但是当我的焦点转到右侧行时。标题片段正在折叠。但在我的情况下,它几乎不会折叠,因为它显示像 youtube 这样的图标 我认为目录浏览器是 Youtube Web UI 组件的一部分。 Android TV Leanback 中的目录浏览器或浏览通道(BrowseFragment)没有这样的中途隐藏目录浏览器,仅在导航到右侧的行后显示图标......它的BrowseFragment.setHeadersState() 只是处于三种状态...可能您需要查看源代码并通过添加“新”状态来扩展 BrowserFragment 并管理其转换。 developer.android.com/training/tv/playback/browse#hide-heads 你好。你有没有找到解决这个问题的方法?我有类似的要求。 不,我没找到。 【参考方案1】:

Leanback 不支持此类功能。我也到处寻找解决方案,但没有发现任何有用的东西。所以我最终编写了一个片段,它的行为类似于侧边栏导航,并通过一个用于交换键盘事件的接口与 RowsSupportFragment 一起使用。

处于展开状态时 -> 显示菜单图标和菜单名称。

当处于折叠状态时 -> 显示菜单图标。

看看这个Repository

【讨论】:

以上是关于在 Android TV 中如何实现 Header 的固定大小,如 Youtube TV App的主要内容,如果未能解决你的问题,请参考以下文章

Android TV 在 RecyclerViews 之间移动焦点

android TextView中如何设置下划线

Android TV:如何使用 Leanbak 自定义 android TV 的左侧导航面板?

如何在 Android TV 中创建 Youtube 主题子标题?

如何在 Android TV 上创建带有步骤的设置菜单屏幕

如何在 Android TV 中开始视频录制(开发)