同步当前fragment中recyclerview的UI和数据与相邻fragment中recyclerview的UI和数据
Synchronize the UI and data of the recyclerview in the current fragment with the UI and data of the recyclerview in the adjacent fragment
这是 Facebook 上的 'like' 功能。
我想将这些 recyclerviews 与这两件作品同步。
如果您在一个片段中单击 recyclerview 上的 'Like' 按钮,则当您更改为另一个片段时,recyclerview 上的 'Like' 按钮应该会发生变化。
我应该使用哪种方法?
界面?
服务?
地图 我应该使用这个吗?
你用什么方法同步两个分片的数据?
您应该使用架构组件中的 ViewModel。
https://developer.android.com/topic/libraries/architecture/.
基本上,您在 activity 中创建一个视图模型,以便它存储在 activity 范围内
//this is the instance of the activity
ViewModelProviders.of(this)
然后您可以使用
在每个片段中获取此视图模型的实例
ViewModelProviders.of(getActivity())
然后可以像在标准 MVVM 架构中一样使用视图模型。
每个片段都应注册到 ViewModel 将提供的生命周期感知组件。 MutableLiveData 就是这样一个组件,您可以使用它向任何对数据感兴趣的人(在本例中为每个片段)提供数据
请注意,虽然 LiveData 做得很好,但它可能会受到限制,因为它将数据存储为时间状态。这很好,但是 android 应该在事件驱动的地方开发)
例如,如果您有一个视图模型,它通过 livedata 将数据发送到视图,它可能会触发一个对话框。当用户关闭该对话框并导致配置更改(销毁并重新创建 activity)时,视图将在设置的时间点接收实时数据的状态,这将再次显示该对话框。基本上,每次旋转设备时,即使您已将其关闭,它也会再次显示对话框。
对此的一个 hacky 修复是在对话框关闭后通知 viewmodel 删除实时数据中的状态。但这会产生许多其他问题,包括将视图状态与视图模型绑定
如果生命周期感知组件改为发送数据更改事件,则会更加灵活。考虑生命周期感知的 Rxjava。您将数据添加到 RXJava 组件,当视图处于可以使用它的状态时,可观察对象将数据提供给观察者(> onresume 和 < ondestory)。
希望这能给你一个起点。如果您需要更多详细信息,请告诉我
这是 Facebook 上的 'like' 功能。 我想将这些 recyclerviews 与这两件作品同步。 如果您在一个片段中单击 recyclerview 上的 'Like' 按钮,则当您更改为另一个片段时,recyclerview 上的 'Like' 按钮应该会发生变化。
我应该使用哪种方法? 界面? 服务? 地图 我应该使用这个吗?
你用什么方法同步两个分片的数据?
您应该使用架构组件中的 ViewModel。 https://developer.android.com/topic/libraries/architecture/.
基本上,您在 activity 中创建一个视图模型,以便它存储在 activity 范围内
//this is the instance of the activity
ViewModelProviders.of(this)
然后您可以使用
在每个片段中获取此视图模型的实例ViewModelProviders.of(getActivity())
然后可以像在标准 MVVM 架构中一样使用视图模型。
每个片段都应注册到 ViewModel 将提供的生命周期感知组件。 MutableLiveData 就是这样一个组件,您可以使用它向任何对数据感兴趣的人(在本例中为每个片段)提供数据
请注意,虽然 LiveData 做得很好,但它可能会受到限制,因为它将数据存储为时间状态。这很好,但是 android 应该在事件驱动的地方开发) 例如,如果您有一个视图模型,它通过 livedata 将数据发送到视图,它可能会触发一个对话框。当用户关闭该对话框并导致配置更改(销毁并重新创建 activity)时,视图将在设置的时间点接收实时数据的状态,这将再次显示该对话框。基本上,每次旋转设备时,即使您已将其关闭,它也会再次显示对话框。 对此的一个 hacky 修复是在对话框关闭后通知 viewmodel 删除实时数据中的状态。但这会产生许多其他问题,包括将视图状态与视图模型绑定
如果生命周期感知组件改为发送数据更改事件,则会更加灵活。考虑生命周期感知的 Rxjava。您将数据添加到 RXJava 组件,当视图处于可以使用它的状态时,可观察对象将数据提供给观察者(> onresume 和 < ondestory)。
希望这能给你一个起点。如果您需要更多详细信息,请告诉我