我想用我的变量
flow
来保存integer
并保留他。然后,recyclerview 中的每个视图持有者都会观察流程并在单击时做出反应。例如:
当我点击我使用的方法时,我有
cardView
statusButtons.toggleVisibility(!statusButtons.isVisible)
..然后我的元素会像在滑动模式下一样公开,如果我单击另一个元素,前一个元素应该(向后滑动)或者在我的情况下只是
toggleVisisbility
到isNotVisible
。
现在,如果我每次点击我的元素时,我只触发这一个元素,这样我就无法隐藏其他元素并对此进行操作。
现在我是这样开始的:
val _stateFlow = MutableStateFlow(-1)
val stateFlow = _stateFlow.asStateFlow()
cardView.onClickListener {
_stateFlow.value = absoluteAdapterPosition
}
Hej Chrisu,
stateFlow 应该是您的
Adapter
的一部分,当您构建新的 ViewHolder
时,您将变量注入到 ViewHolder
中。这样,stateFlow 仅创建一次,所有持有者都可以观察它。
类似这样的:
Adapter{
val stateFlow = MutableStateFlow(-1)
override fun onCreateViewHolder(viewGroup: ViewGroup, viewType: Int): ViewHolder =
ViewHolder(stateFlow)
}
ViewHolder(val stateFlow: MutableStateFlow){
init{
cardView.onClickListener {
_stateFlow.value = absoluteAdapterPosition
}
}
}