如何检查是否创建了视图

一月

我有一个实现自定义侦听器的片段。

该片段被替换并使用以下命令添加到后台堆栈中 addToBackStack()

现在,如果我从新片段弹出后退堆栈,则我正在调用侦听器来做someMethod()问题在于该方法与视图相关联。当然,由于尚未创建视图,因此它将返回错误。

我正在考虑使用Handler延迟该方法,但这似乎是错误的。有什么方法可以将数据传递到上一个片段?或至少检查是否已创建视图。

这是我替换/弹出片段时的方法:

    String backStateName = fragment.getClass().getName();

    boolean fragmentPopped = manager.popBackStackImmediate(backStateName, 0);

    if (!fragmentPopped) { //fragment not in back stack, create it.
        FragmentTransaction ft = manager.beginTransaction();
        ft.replace(R.id.container, fragment);
        ft.addToBackStack(backStateName);
        ft.commit();
    }

我有多个片段,可能会回到第一个片段。假设我有5个片段。

ABC是堆栈。然后,我使用该方法返回A。

德米德

让你的听众片段是片段A您需要取消订阅片段AonPause()并订阅onResume()此外,如果某个事件已被触发,则需要在有人订阅该事件后立即触发该事件(在您的Model中实现一些布尔标志或类似的标记)。

这样事件流将是这样的:

  • A.onResume()-A.subscribe()[未触发事件,未触发监听器]
  • A.onPause()-A.unsubscribe()
  • 向后按-您的事件触发
  • A.onResume-A.subscribe()[事件被触发,监听器触发。此时,您的视图已初始化,一切正常。]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何检查是否创建了Intent

检查是否使用FORCE选项创建了视图

如何检查是否在TTabSheet控件上创建了OnResize事件?

如何使用java检查是否正确创建了Oracle程序?

检查是否创建了懒惰的单例

如何检查哪个包创建了用户?

如何检查是否在dart中使用命名构造函数创建了元素?

如何检查是否已使用“--disabled-login”和“--disabled-password”创建了 unix 帐户

如何检查是否使用MATCH FULL或MATCH SIMPLE约束创建了引用多个列的外键?

如何检查是否创建了 h2 嵌入式数据库?

如何检查我们是否已经使用ObservableSlim在Object上创建了代理?

如何检查是否创建了身份验证令牌并将其保存在Cookie中

如何返回/实现 ArrayList 的 toString?另外,只是想检查我是否正确创建了我的对象?

在创建导轨上检查是否成功创建了记录

检查是否从类型构造函数创建了完整类型

无法检查是否正确创建了PDF文件

如果已经创建了 Django,如何停止创建视图

如何检查视图是否存在以及如何创建不存在的视图

如何检查是否为64位构建了静态库?

如何确定getLogger是否创建了新对象?

如何确定是否在Django中创建了新对象?

如何确定内核或udev是否创建了设备节点?

如何判断append是否创建了新的基础数组

如何知道Mongoose的upsert是否创建了新文档?

我如何知道是否实际创建了std :: string?

创建表/视图而不检查引用的表/视图是否存在

操作系统重启后,是否在调用onActivityResult()之前重新创建了活动的视图?

如何检查哪个软件包在Arch Linux中创建了一个组?

如何检查谁在GCP中创建了VM和其他资源?