假设片段A中有5个视图(1、2、3、4、5),并且每个视图都是可聚焦的,那么,如果片段A中的当前焦点在视图3上,并且单击该视图加载了一个新片段,假设片段B。
现在,当我按下返回按钮时,是否有办法使焦点自动保留在片段A的视图3上?
注意:我已经在backstack中添加了这些片段。但是我的片段包含回收器视图。单击回收器视图的一个项目将加载另一个片段,并且在back按下时,Main Activity将获得默认焦点。我可以通过实现片段的onBackPressListener()
方法来实现将焦点集中在回收器视图的第一个项目上。但是我不知道如何像以前一样将焦点保持在片段上。
3条答案
按热度按时间ljsrvy3e1#
您可以随时将这些片段添加到片段管理器的backstack中。
9nvpjoqh2#
如果您使用“添加到反向堆栈”将片段添加到片段A的顶部,则当您按下“返回”按钮时,它将在最后聚焦的项目中恢复
63lcw9qa3#
对于那些仍在寻找解决方案的人,我测试了许多方法,但这一种对我来说是最好的(Kotlin):Image
片段A
1-在片段A的onStop()中,阻止片段的后代可聚焦性,以避免BACK上的活动将焦点给予随机按钮
2-在简历上做一些事情
3-设置片段转场
4-我正在使用leanback RowSupportFragment,当您请求焦点到它的verticalGridView时,它会自动将焦点设置到最后一项
注意您可以将焦点放在任何所需的视图上
5-在onResume中调用lambda