es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo afirmar que un TabLayout con desplazamiento está mostrando actualmente una pestaña determinada?

Estoy mostrando un TabLayout y conectándolo a un objeto ViewPager2 (mediante la clase TabLayoutMediator). El TabLayout tiene un tabMode de scrollable y contiene más pestañas de las que caben en la pantalla a la vez. Quiero asegurarme de que una cierta pestaña esté visible y seleccionada cuando se renderice mi actividad o fragmento. ¿Cómo puedo hacer esto?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para asegurarse de que una pestaña en particular es visible y seleccionada cuando se renderiza la actividad o el fragmento, puedes utilizar el marco de prueba Espresso. Aquí tienes un ejemplo:

    1. Primero, asegúrate de haber inicializado los objetos [TabLayout][1] y [ViewPager2][2] en tu actividad o fragmento.
    2. Utiliza la clase [TabLayoutMediator][3] para conectar los dos objetos:

    TabLayoutMediator(tabLayout, viewPager2) { tab, position ->
        // Personaliza las pestañas según sea necesario
    }.attach()
    
    1. Utiliza Espresso para encontrar la pestaña específica que deseas asegurar que está visible y seleccionada:
    onView(withId(R.id.tabLayout)).perform(selectTabAtPosition(TAB_POSITION))
    

    Reemplaza R.id.tabLayout con el ID de tu objeto [TabLayout][1], y TAB_POSITION con la posición de la pestaña que deseas seleccionar (empezando desde 0).

    1. Finalmente, utiliza Espresso para verificar que la pestaña seleccionada es visible:
    onView(withId(R.id.viewPager2)).check(matches(hasDescendant(withText(TAB_TITLE))))
    

    Reemplaza R.id.viewPager2 con el ID de tu objeto [ViewPager2][2], y TAB_TITLE con el título de la pestaña que deseas asegurar que esté visible.

    Estos comandos de Espresso simularán que un usuario hace clic en la pestaña seleccionada y se desplaza hacia ella si no está visible, y luego verificará que la pestaña esté efectivamente visible y seleccionada.

Comments are closed.