代码之家  ›  专栏  ›  技术社区  ›  capt.swag

如何在行为主体中设置默认值

  •  1
  • capt.swag  · 技术社区  · 6 年前

    可能是个无意义的问题。如何设置行为主题的默认值。

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

    enum class WidgetState {
        HIDDEN,
        VISIBLE
    }
    

    以及一个释放国家的行为主体

    val widgetStateEmitter: BehaviorSubject<WidgetState> = BehaviorSubject.create()
    

    当写入视图逻辑时,发射器开始发出。但是默认情况下它是隐藏的。如何将默认值设置为我的发射器的widgetstate.hidden widgetStateEmitter ?

    3 回复  |  直到 6 年前
        1
  •  6
  •   Robby Cornelissen    6 年前

    有静电 BehaviorSubject.createDefault(T defaultValue) 允许设置初始值的工厂方法。

    JavaDoc的 defaultValue 参数表示:

    默认值 -将首先发射到任何 Observer 只要 BehaviorSubject 尚未观察到来自 其来源 Observable

    所以你只需要创造 行为主体 如下:

    val widgetStateEmitter: BehaviorSubject<WidgetState> = 
            BehaviorSubject.createDefault(HIDDEN)
    
        2
  •  1
  •   Milind Mevada Amir Hossein Mirzaei    6 年前

    订阅此主题时,可以使用 Start with Operator

    widgetStateEmitter.startWith(HIDDEN)
    //continue your chain
    
        3
  •  0
  •   MidasLefko Drakosha    6 年前

    在构造函数或onCreate(或类似)中,只需调用 widgetStateEmitter.onNext(HIDDEN)