Nesse post vou mostrar como realizar a combinação de LiveData para gerar outro. No meu caso utilizei dessa combinação para deixar a exibição de um botão de Login
dinâmico em relação ao preenchimento das colunas de usuário e senha.
Com a utilização do Transformations.map
podemos criar um novo LiveData
que muda de valor conforme o LiveData
base é alterado, porém ele fornece apenas um argumento
, para criarmos uma entrada com múltiplos argumentos temos que criar um MediatorLiveData
que nos permite adicionar diversas fontes de um tipo específico. O Kotlin
já nos fornece um tipo Pair
e um Triple
, no exemplo a seguir vou utilizar dessas duas classes para criar um PairLiveData
e um TripleLiveData
e atravéz do Transformations.map
gerar um novo LiveData
. Caso haja a necessidade de criar um com mais combinações, você deve fazer sua própria implementação.
Referência: https://stackoverflow.com/questions/47572913/livedata-transformations-map-with-multiple-arguments