如何在android tv中使用像netflix这样的浏览片段制作侧边菜单?

Posted

技术标签:

【中文标题】如何在android tv中使用像netflix这样的浏览片段制作侧边菜单?【英文标题】:How to make side menu using browse fragment like netflix in android tv? 【发布时间】:2020-05-01 21:13:20 【问题描述】:

Attached screenshot of netflix app with left side menu 我可以开发一个带有自定义图标和标题的侧边菜单。我想,当焦点出现在标题片段上时,它应该在行片段之上展开,而不是折叠行片段,就像 Netflix 和 hotstar 所做的一样。我怎样才能实现它?

【问题讨论】:

能分享一下侧边菜单的截图吗? 嗨,dasser,我编辑了我的问题并添加了截图供您参考。 嗨,你找到解决办法了吗? 有人找到解决办法吗? 【参考方案1】:

不幸的是,BrowseSupportFragment 中使用的HeaderSupportFragment 的可配置性不足以实现这种设计。 Leanback 非常适合快速轻松地构建媒体浏览器应用程序,但是当涉及“复杂”设计时,使用自定义组件更容易。

这里的主要区别也是BrowseSupportFragment 的左侧菜单显示屏幕中显示的每一行标题名称(这就是它被称为HeaderSupportFragment 的原因)。在这里您要显示不同的条目,例如搜索、主页、设置等。

要制作这种视图,我建议您创建自己的自定义视图并使用基本的Fragment。我按照本教程操作,该教程对处理菜单打开/关闭动画很有用(我将它与 ConstraintLayout 混合以简化动画,我让菜单与屏幕的其余部分重叠,而不是移动所有内容。)

见教程:https://medium.com/building-for-android-tv/building-for-android-tv-episode-3-381e041dfec7

【讨论】:

您能否提供一个线索,说明您是如何构建动画以覆盖屏幕的其余部分而不是移动所有内容?谢谢 @blueware 使用Activity/Fragment 包装RowSupportFragment @Sofiane Hassaini 媒体链接现在无效。如果您有任何示例项目,请分享 GitHub 链接。 @blueware 使用ConstraintLayout,如果你给左视图(所以菜单)在它的开始处提供一个约束,但在它的结尾没有任何约束,并且只在你想要的时候更新菜单的宽度打开它,它将与屏幕的其余部分重叠,而不是移动右侧的视图。我强烈建议在尝试实现菜单、行等之前使用简单的 2 个视图对其进行测试。 @MdImranChoudhury 很遗憾,我没有任何开源项目可以分享 :( 我可以花时间写一篇关于这个主题的快速教程,如果你有兴趣,可以与你分享

以上是关于如何在android tv中使用像netflix这样的浏览片段制作侧边菜单?的主要内容,如果未能解决你的问题,请参考以下文章

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

如何使用语音打开 Android TV 应用

如何在 Android TV 应用上禁用 Playback ControlGlue?

像 Netflix 上的水平滚动图像

Android TV 中的 RecyclerView 项目焦点

android tv - 浏览片段中搜索图像的参考