2015-09-05 17 views
13

Ho cercato di determinare se è possibile creare un osservabile DialogFragment. In sostanza voglio essere in grado di:Come gestire un DialogFragment con RxJava?

  • creare e visualizzare una DialogFragment
  • Tornate un rx Observable che può essere sottoscritto per il risultato (OK/Annulla premuto, ingresso String, il successo sfondo compito/fallimento, ecc)
  • gestire correttamente modifica della configurazione

Finora la cosa più vicina che ho trovato è ReactiveDialog, che ha usato per essere parte di RxAndroid, ma è stato removed from RxAndroid in v1.0.0 come parte di semplificare RxAndroid.

Mentre il ReactiveDialog sembra soddisfare i miei primi due criteri, non sembra che gestisca il cambio di configurazione. Ci sono due aspetti da considerare:

  1. Il DialogFragment è vincolato dalla propria Observable attraverso modificare la configurazione in modo che possa informare gli abbonati del suo stato.
  2. Gli abbonati devono essere in grado di mantenere la propria sottoscrizione o ri-sottoscrizione dopo una modifica della configurazione (ovviamente senza produrre una perdita di memoria).

Sono ancora abbastanza nuovo per RxJava, quindi sto ancora cercando di capire come gestire qualcosa del genere. Sembra che dovrebbe essere possibile, ma sento che richiederebbe un gestore statico o singleton Observable e possibilmente retainedInstanceDialogFragments.

Qualcuno ha suggerimenti o migliori pratiche per questo?

+0

Ciao! Hai trovato qualche soluzione? – Tiberal

risposta

1

Ci sono due problemi qui; uno è che non vuoi perdere oggetti Java durante il relayout - guarda nello runtime changes docs.

L'altro problema è che si desidera creare un Osservabile con l'azione della finestra di dialogo, quando tale azione viene attivata. Per questo, dai un'occhiata ai documenti RxJava, lo Asynchronous Observer example. Dovrai creare uno Observable.OnSubscribe e passare il codice Subscriber al tuo codice che chiamerà le chiamate onNext/onError/onCompleted10 necessarie.

Problemi correlati