Generalidades

Compose Tab sin asa.Regla de migración 4: Escribir navegación … | Autor: SeongUg Steve Jung | Julio de 2021

SeongUg Steve Jung

Regla de migración 4: navegación combinada sin Hilt y ViewModelProvider

En este artículo, describiré cómo podemos implementar experimentos de Compose Tab sin Hilt y AAC ViewModel.

Puede pensar que Compose, Hilt y AAC ViewModel son importantes al leer este artículo.

A través de Hilt y ViewModel Provider, podemos inyectar fácilmente ViewModel en Activity / Fragment.

En el fragmento anterior, MainActivity Se puede inyectar MainViewModel

En Compose, también tiene utilidades para ViewModel.

después hiltViewModel<VIEWMODEL>() , Podemos obtener MainViewModel El ejemplo es simple.

¿Entonces?

Awave, y el usuario se ha centrado en foo Tab, el compositor está observando FooViewModel.title Se procesará cuando el usuario se traslade a bar etiqueta.

Si una clase hereda de AAC ViewModel , Componga fácilmente la inyección de ViewModel apalancada.

¿Qué tal no usar AAC ViewModel y Hilt?

Entonces necesitamos resolver un problema.

No inyectaremos y presentaremos todos los modelos de vista en Actividad / Fragmento

Suponga que hay más de 10 pestañas y cada pestaña tiene 1 ~ 3 modelos de vista.

Para simplificar la actividad de la pestaña de redacción anterior, puse ComposableHolder

inject() es para DI con render() Está renderizando Compose View .

La pantalla de pestañas tendrá cada ComposableHolder

En MainActivity, establece cada ComposableHolder para la pestaña.

MainActivity tiene ComposableHolder para cada pestaña. Cada ComposableHolder presentará la pantalla de cada pestaña e inyectará el modelo de vista apropiado.

apéndice

El componente activo es @Component . Cada componente de la pestaña será @SubComponent En MainComponent , El módulo de componentes tiene uno @Provides Para el titular.La función obtiene Builder de Component

LEER  Cómo instalar Linux y Pi-hole en cualquier dispositivo Android | Autor: André Nagatani | Septiembre de 2021

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba