如何在BehaviourSubject中设置默认值

cap*_*wag 1 android kotlin rx-java

可能是一个菜鸟问题.如何为BehaviourSubject设置默认值.

我有一个有两个不同值的枚举

enum class WidgetState {
    HIDDEN,
    VISIBLE
}
Run Code Online (Sandbox Code Playgroud)

并且是发出状态的行为主体

val widgetStateEmitter: BehaviorSubject<WidgetState> = BehaviorSubject.create()
Run Code Online (Sandbox Code Playgroud)

写入视图逻辑时,我的发射器开始发射.但是默认情况下它是HIDDEN.如何将默认值设置为WidgetState.HIDDEN到我的发射器widgetStateEmitter

Rob*_*sen 6

有一个静态BehaviorSubject.createDefault(T defaultValue)工厂方法,允许设置初始值.

defaultValue参数的Javadoc 说:

defaultValue- Observer 只要BehaviorSubject尚未从源头观察任何物品,将首先发射到任何物品的物品Observable

所以你只需要创建BehaviorSubject如下:

val widgetStateEmitter: BehaviorSubject<WidgetState> = 
        BehaviorSubject.createDefault(HIDDEN)
Run Code Online (Sandbox Code Playgroud)