11

我有一个使用 DetailsOverviewRow 和 FullWidthDetailsOverviewRowPresenter 的详细信息片段。当页面第一次加载时,操作按钮被选中。当我按下一次时,焦点离开按钮,没有其他反应。当我第二次按下时,焦点移动到页面下方的 ListRow。我试图弄清楚为什么在演示者中调用的概述或正文部分不集中。

详情查看初始状态

详细信息视图滚动

在概述/正文可读的两个屏幕截图之间是否应该没有第二个“状态”?

可能值得注意。DetailsFragment 未在活动 xml 中声明,我正在使用 FragmentTransactions 手动更改片段。此外,片段是使用静态创建方法(下面的源代码)实例化的。

提前致谢。

活动 xml

详情Fragment java

4

3 回答 3

2

我没有特别尝试过这个例子,但是从我花在 Leanback 支持库上的时间来看,我了解到即使确实提供了很多有用的东西,但很多都不是:D

所以我会尝试这些事情:

1)确保您想要可见的区域中的某些东西是可聚焦的。(默认情况下可点击的元素应该是可聚焦的,但也最好检查一下)我的意思是,在屏幕截图上,该区域只有文本,没有按钮或可编辑的内容。因此,当您按下时,没有什么可以关注的。如果您使正文 TextView 可聚焦会发生什么?(是的,人们会期望支持库会处理这个问题,但情况可能并非如此。)

2)找出当你按下时真正得到焦点的东西,因为正如你所说,焦点离开按钮 - 但它去哪里了?(如何找出焦点所在的视图?)您可能在某个地方遇到了“方向问题”。也就是说 - 焦点基于视图层次结构树,而不是基于我们在屏幕上看到的内容。在某些情况下,可以通过将焦点移动到视图树的意外部分来跳过某些元素或卡在某个地方,这对算法来说是有意义的,但从人类的角度来看是不合逻辑的。

于 2016-09-12T16:14:20.520 回答
2

细节演示者焦点以这种方式工作:1)首先将焦点赋予操作按钮。右/左导航按下可在操作按钮之间向右/向左移动焦点。

2)从动作行向下导航将焦点从动作行转移到细节行(个别细节项本身不可聚焦),这是通过将缩略图锚定位置向南移动来实现的。

3)从详细信息行向下导航键将焦点从详细信息行转移到相关行。

因此,细节行通过改变缩略图图像的锚定位置获得焦点。从动作行向下按下时,您的缩略图图像是否改变了其锚定位置?

于 2016-09-18T07:19:59.997 回答
1

讨厌回答我自己的问题。这是由于我未能使用 RTFM。网络请求完成后,我正在创建片段 UI。为了让 FullWidthDetailsPresenter 正常工作,ClassPresenterSelector() 应该在片段 onCreate() 方法中初始化。

于 2016-10-01T21:44:07.573 回答