Espresso, el desplazamiento no funciona cuando NestedScrollView o RecyclerView está en CoordinatorLayout

Parece queCoordinatorLayout rompe el comportamiento de acciones de Espresso comoscrollTo() oRecyclerViewActions.scrollToPosition().

Problema con NestedScrollView

Para un diseño como este:

<android.support.design.widget.CoordinatorLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        ...

    </android.support.v4.widget.NestedScrollView>

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        ...

    </android.support.design.widget.AppBarLayout>

</android.support.design.widget.CoordinatorLayout>

Si trato de desplazarme a cualquier vista dentro delNestedScrollView utilizandoViewActions.scrollTo() el primer problema que encuentro es que me sale unPerformException. Esto se debe a que esta acción solo admiteScrollView yNestedScrollView no lo extiende Se explica una solución para este problemaaquí, básicamente podemos copiar el código enscrollTo() y cambiar las restricciones para apoyarNestedScrollView. Esto parece funcionar si elNestedScrollView no está en unCoordinatorLayout pero tan pronto como lo pones dentro de unCoordinatorLayout la acción de desplazamiento falla.

Problema con RecyclerView

Para el mismo diseño, si reemplazo elNestedScrollView con unRecyclerView También hay problemas con el desplazamiento.

En este caso estoy usandoRecyclerViewAction.scrollToPosition(position). A diferencia delNestedScrollView, aquí puedo ver algunos desplazamientos pasando. Sin embargo, parece que se desplaza a la posición incorrecta. Por ejemplo, si me desplazo a la última posición, hace visible la penúltima pero no la última. Cuando muevo elRecyclerView fuera deCoordinatorLayout el desplazamiento funciona como debería.

Por el momento no podemos escribir ninguna prueba de Espresso para las pantallas que usanCoordinatorLayout Debido a estos problemas. ¿Alguien experimenta los mismos problemas o conoce una solución alternativa?

Respuestas a la pregunta(7)

Su respuesta a la pregunta