一个屏幕上有两个片段 (activity),一个片段如何使用 EventBus 更新另一个片段
With two fragments on one screen (activity), how can one fragment update the other with EventBus
好的,所以我是 android 开发的新手。
我正在制作录音应用。在与录音按钮(用于录音)相同的屏幕上,我还有一个 Fragment
来显示我有多少录音。我可以点击录音按钮进行录音,但是直到 activity 的状态刷新后录音计数才会更新。我希望录音计数实时更新。该片段也将在另一个 activity 中可见,因此逻辑不能在主记录中 activity.
我刚刚将 EventBus
集成到我的项目中。到目前为止,我已经将它设置为事件是成功录制的地方,订阅者是片段。
片段值正确地获取了事件消息,但片段在 "refreshed" 之前不会更新,或者更确切地说,经历了 onDestroyView()
到 onCreateView()
的生命周期。
请帮忙,我希望能够实时更新片段,而不必使用内置的生命周期函数。
谢谢!
编辑:
我通过删除片段然后重新添加找到了解决方案。
supportFragmentManager
.beginTransaction()
.remove(statsFragmentTwo)
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE)
.commit()
supportFragmentManager
.beginTransaction()
.add(R.id.main_stats_container_two, statsFragmentTwo)
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
.commit()
但是,这看起来还是不太有效!有没有更便宜的方法?
The fragment value correctly gets the event message, but the fragment
will not update until it's "refreshed" or rather, goes through its
life cycle of onDestroyView() to onCreateView().
我不明白 - “Fragment
不会更新”的想法。如果您可以成功侦听该事件,则可以在片段中捕获该事件的地方立即更新 UI 元素。我只是冒充一个伪代码。
if(eventListened)
updateUIElementsHere();
您不必等待生命周期函数被调用。在您的 updateUIElementsHere
函数中,您可以考虑使用与 onCreateView
函数中的代码类似的代码。
希望对您有所帮助!
好的,所以我是 android 开发的新手。
我正在制作录音应用。在与录音按钮(用于录音)相同的屏幕上,我还有一个 Fragment
来显示我有多少录音。我可以点击录音按钮进行录音,但是直到 activity 的状态刷新后录音计数才会更新。我希望录音计数实时更新。该片段也将在另一个 activity 中可见,因此逻辑不能在主记录中 activity.
我刚刚将 EventBus
集成到我的项目中。到目前为止,我已经将它设置为事件是成功录制的地方,订阅者是片段。
片段值正确地获取了事件消息,但片段在 "refreshed" 之前不会更新,或者更确切地说,经历了 onDestroyView()
到 onCreateView()
的生命周期。
请帮忙,我希望能够实时更新片段,而不必使用内置的生命周期函数。
谢谢!
编辑:
我通过删除片段然后重新添加找到了解决方案。
supportFragmentManager
.beginTransaction()
.remove(statsFragmentTwo)
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE)
.commit()
supportFragmentManager
.beginTransaction()
.add(R.id.main_stats_container_two, statsFragmentTwo)
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
.commit()
但是,这看起来还是不太有效!有没有更便宜的方法?
The fragment value correctly gets the event message, but the fragment will not update until it's "refreshed" or rather, goes through its life cycle of onDestroyView() to onCreateView().
我不明白 - “Fragment
不会更新”的想法。如果您可以成功侦听该事件,则可以在片段中捕获该事件的地方立即更新 UI 元素。我只是冒充一个伪代码。
if(eventListened)
updateUIElementsHere();
您不必等待生命周期函数被调用。在您的 updateUIElementsHere
函数中,您可以考虑使用与 onCreateView
函数中的代码类似的代码。
希望对您有所帮助!