Leanback.DetailsFragment没有按预期滚动

时间:2016-09-04 23:37:07

标签: android leanback

我有一个使用DetailsOverviewRow和FullWidthDetailsOverviewRowPresenter的详细信息片段。当页面首次加载时,操作按钮被选中。当我按下一次时,焦点离开按钮,没有其他任何事情发生。当我再次按下时,焦点移动到页面下方的ListRow。我试图弄清楚为什么概述或在演示者中调用的主体部分没有集中注意力。

DetailsView initial state

DetailsView scrolled

如果没有第二个状态'概述/正文可读的两个屏幕截图之间?

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

提前致谢。

Activity xml

DetailsFragment java

3 个答案:

答案 0 :(得分:2)

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

所以我会尝试这些事情:

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

2)当你按下时,找出实际聚焦的内容,因为正如你所说,焦点离开了按钮 -​​ 但它在哪里? (How to find out which view is focused?)你可能在某处遇到“方向问题”。也就是说 - 焦点基于视图层次结构树传播,而不是基于我们在屏幕上看到的内容。在某些情况下,可以通过将焦点移动到视图树的意外部分来跳过某些元素或卡在某处,这对于算法是有意义的,但从人的角度来看是不合逻辑的。

答案 1 :(得分:2)

细节主持人焦点以这种方式工作:    1)首先关注动作按钮。右/左导航按下可在操作按钮之间左右移动焦点。

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

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

因此,细节行通过更改缩略图图像的锚定位置来获得焦点。从操作行按下时,缩略图图像是否会更改其锚定位置?

答案 2 :(得分:1)

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

相关问题