好,所以我是android开发的新手。
我正在制作一个录音应用程序。在与录制按钮(用于录制内容)相同的屏幕上,我还有一个Fragment
以显示我有多少个录制内容。我可以点击“录制”按钮进行录制,但是在刷新活动状态之前,录制计数不会更新。我希望记录计数实时更新。该片段也将在另一个活动中可见,因此逻辑不能出现在主记录活动中。
我刚刚将EventBus
集成到我的项目中。到目前为止,我已经将其设置为事件成功记录的地方,而订户是片段。
片段值正确地获取了事件消息,但是直到“刷新”片段,或者经历了从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()
但是,这看起来并不十分有效!有没有更便宜的方法?
答案 0 :(得分:0)
片段值正确获取事件消息,但是片段 在“刷新”之前,不会更新 onDestroyView()到onCreateView()的生命周期。
我不明白-“ Fragment
将不会更新”的想法。如果您可以成功收听事件,则可以在片段中捕获事件的位置立即更新UI元素。我只是伪装一个伪代码。
if(eventListened)
updateUIElementsHere();
您不必等待生命周期函数被调用。在您的updateUIElementsHere
函数中,您可以考虑使用与onCreateView
函数中相似的代码。
希望有帮助!