有人可以指出我正确的方向吗?我有一个RecyclerView,其中装有一个ViewPager,它具有2个片段。 因此,视图层次结构看起来像这样:
Activity
-------RecyclerView
------------------Adapter ↖
------------------------ViewPager ↖
---------------------------------Fragment1 (Radio Buttons) , Fragment2 (Num Picker)
我试图检索每个单选按钮(Enum Long Value)上的单击,所以我修改了适配器内的Room DB。
用例Gif:
这是我的 Open Fragment1 代码:
private val publishSubject: PublishSubject<Long> = PublishSubject.create()
open val publishObservable: Observable<Long> = publishSubject
RadioButton.onClick { _ ->
publishSubject.onNext(WINNER.AWAY.value)
println("Fragment 1 = ${WINNER.AWAY.value}") // <-- This prints on Click
}
enum class WINNER(val value: Long) {
LOCAL(1),
DRAW(2),
AWAY(3)
}
在适配器中:
val fragment1 = Fragment1()
mDisposable.add(fragment1.publishObservable
.subscribeOn(Schedulers.io())
.subscribe { println("Adapter = $it") }) // <-- This doesnt println
我曾尝试使用捆绑软件,共享首选项,接口甚至其他卧式RecyclerView(我不确定该如何固定视图使用),但是我确实知道性能RV更好。