首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >接收错误片段对onKey方法的调用

接收错误片段对onKey方法的调用
EN

Stack Overflow用户
提问于 2019-08-13 23:34:44
回答 1查看 35关注 0票数 0

情况*:我正在逐个片段地查找有关onKey覆盖方法的一些信息。我有一个单一的活动几个片段结构。一次只有一个片段可见。我显示了一个带有事务添加片段的新片段(因为我不想在返回时重新创建前一个片段,所以我不使用replace) + setPrimaryFragment。我用transaction remove fragment + setPrimaryFragment返回,用最上面的片段更新。在我的片段中,我覆盖了onKey方法。

现在我的问题是*有时onKey (后退按钮)不是由顶部片段(可见的和主要的)接收的,而是由不可见的和非主要的片段接收的。

案例1:有两个片段,打开和返回,工作正常。

使用3个片段,打开fr1,打开fr2,打开fr3,然后返回fr2(删除并销毁fr3)。因此,现在如果我再次推送,onKey不是在第二个片段fr2 (可见和主要)上调用的,而是由第一个片段fr1 (不可见和主要)调用的。

有没有人能告诉我为什么?onKey如何决定调用哪个片段?

现在,我通过在onKey内部检查碎片是否是主碎片来解决这个问题,如果不是,我就将自己的调用分派给主碎片。但我还是想知道为什么..。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-06-12 02:50:36

不知道回复我的请求是否有用,但我终于找到了这种行为的由来。即使该片段是顶部可见的片段,也不意味着它具有焦点。只有具有焦点的片段才会触发onKey方法。弹出或替换并不能转移焦点,你需要自己用方法请求焦点来做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57481087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档