我的目标是,当用户单击该人时,将文本颜色更改为蓝色,它将显示个人信息,并且对于所有用户来说都是相同的。所以我尝试使用带有单个片段的回收器视图。
当用户单击 **按钮增量 ** 时,它将更新回收者视图中的人数。
当用户在不同的人之间切换时,我想显示该人的信息而不创建新的片段。
我尝试使用选项卡布局和视图分页器,但所有用户的布局都是相同的,所以我认为应该有更好的方法来解决这个问题。
我应该将 viewmodle 传递给我的适配器并观察按钮点击计数吗?
这个问题有3个主要问题。
[实现此结果的图像
是的,一种简单的开始方法是将 1 个 viewModel 传递到适配器和片段中。
让我们从简单的开始,只用 3 个人的数据来让它工作。在你的视图模型中你应该有:
val person1 = mutableLiveData<Person>()
val person2 = mutableLiveData<Person>()
val person3 = mutableLiveData<Person>()
init {
person1.value = Person()
…
}
然后,如果将 viewModel 传递给适配器,您可以:
veiwModel.person1.observe { updatedPerson ->
dataset.removeAt(0)
dataset.addItemAtPosotion(updatedPerson, 0)
[email protected](0)
}
在您的片段中,您可以类似地观察一条新的实时数据,调用fragmentPerson,并在该数据更改时重新初始化该片段。