使用 RowsSupportFragment 自定义 Android 和 FireTv UI

Posted

技术标签:

【中文标题】使用 RowsSupportFragment 自定义 Android 和 FireTv UI【英文标题】:Android and FireTv UI customization using RowsSupportFragment 【发布时间】:2020-09-11 12:28:51 【问题描述】:

我是 android TV 开发的新手,想了解一些事情。我看到使用 Leanback 我们可以实现这一点。关键组件是 BrowseSupportFragment、RowsSupportFragment 等。

我想要的是。 目前,在 BrowseSupportFragment 中,我正在使用 PageRow,这样我就可以为每一行拥有一个自定义片段(扩展 RowsSupportFragment)。我想要的是这个,自定义 Fragment 是一个常规的 Fragment(扩展 Fragment),并且其中有一些 FrameLayouts,对于那个 FrameLayouts,我可以调用不同的 Fragment(RowsSupportFragment)。因此,总结一下,我想要每个 frameLayout 的 BrowseSupportFragment --> Fragment --> RowsSupportFragment 之类的东西,这样我就可以根据需要自定义 UI。

有人可以帮我解决这个问题吗?

【问题讨论】:

【参考方案1】:

我无法绕过这种情况。所以我最终得到了正常的片段和一些关键点,以防其他人需要相同的片段。

    android:background="?android:attr/selectableItemBackground"这个给父布局获取当前视图选中效果。

    方向应该由 onKeyListener 处理这些事件。

    一个。 keyCode == KeyEvent.KEYCODE_DPAD_UP

    b. keyCode == KeyEvent.KEYCODE_DPAD_DOWN

    c。 keyCode == KeyEvent.KEYCODE_DPAD_LEFT

    d。 keyCode == KeyEvent.KEYCODE_DPAD_RIGHT

    e。 keyCode == KeyEvent.KEYCODE_DPAD_ENTER

(当你按下键盘上的回车键时) 确保检查 event.getAction() == KeyEvent.ACTION_DOWN 否则你会遇到跳过中间视图的问题。

如果有人得到关于问题的正确实现,请更新到那时这是我的解决方案。

【讨论】:

以上是关于使用 RowsSupportFragment 自定义 Android 和 FireTv UI的主要内容,如果未能解决你的问题,请参考以下文章

焦点没有移出 RowsSupportFragment

是否可以将 RowsSupportFragment 的子类传递给 BrowseSupportFragment 的子类?

使用自定义声明导入 Firebase 用户

使用 Windows 身份验证时向身份添加自定义声明

使用类作为自定义工作表函数的参数

使用 QStyledItemDelegates 作为 QListView 中的自定义项