2017-12-14 21 views
0

ViewPagerに2つのFragmentsを保持するコンテナFragmentがあります。私はこれらの2つがデータを取得する準備が整うまで待つ必要があります。2つの観測値が真となるまで待つ

:私は、次のようにこれら二つを組み合わせたい

var tab1ready = tab1fragment.viewReady() 
var tab2ready = tab2fragment.viewReady() 

:私は私のコンテナFragmentからこれに加入し

val viewReady : BehaviorSubject<Boolean> = BehaviorSubject.createDefault(false) 

@CallSuper 
override fun onViewCreated(view: View?, savedInstanceState: Bundle?) { 
    super.onViewCreated(view, savedInstanceState) 
    viewReady.onNext(true) 
} 

:私はこのBehaviorSubjectを保持しているViewPagerFragmentクラスを作成しました

"そのうちの2つが真である場合、fetchData()を呼び出します。

私はこれを行うための適切な方法を見つけるのに苦労しています。これはそれぞれのブール値を保持しないで、両方のブール値が真であれば各エミッションをチェックします。

答えて

0

溶液#1:.filter()各 '真' に観察、.zipファイル()両方、.take(1)

溶液#2:Observable.combineLatest().filter()両方とも '本当'、.take(1)オン。

+0

これは私が両方に真実を得ることを保証しますか? – MichelReap

+0

はい。値がtrueかどうかを調べる.filter()を使用すると、 –

関連する問題