假设我有2个片段A和B。每个片段分别包含一个视图viewA和viewB。默认情况下,两个视图都是隐藏的。
有一个名为sharedVM的共享视图模型(链接到活动)
用户的事件A将显示带有动画的viewA并隐藏带有动画的viewB(如果viewB可见) 用户的事件B将显示带有动画的viewB并隐藏带有动画的viewA(如果viewA可见)
我大概是:
解决方案1: 在sharedVM中使用LiveData状态来了解视图是隐藏还是可见。 但是,当片段被销毁并重新创建时: 隐藏/显示动画将再次播放,这不好。
解决方案2: 在sharedVM中使用LiveDataEvent可以知道调度和触发动画。 但是,当片段被销毁并重新创建时: 我不知道视图的先前状态 ...
有什么更好的方法?
答案 0 :(得分:0)
我认为,您需要:
LiveData
中的当前状态)您可以在onViewCreated()
回调中完成此操作。此修复程序使您的第一个解决方案有效。