Эспрессо, прокрутка не работает, когда NestedScrollView или RecyclerView находится в CoordinatorLayout

Это выглядит какCoordinatorLayout нарушает поведение действий эспрессо, таких какscrollTo() или жеRecyclerViewActions.scrollToPosition().

Проблема с NestedScrollView

Для макета, подобного этому:

<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>

Если я попытаюсь прокрутить до любого представления внутриNestedScrollView с помощьюViewActions.scrollTo() первая проблема, которую я нахожу в том, что я получаюPerformException, Это потому, что это действие поддерживает толькоScrollView а такжеNestedScrollView не расширяет это. Обходной путь для этой проблемы объясненВотв основном мы можем скопировать код вscrollTo() и изменить ограничения для поддержкиNestedScrollView, Это похоже на работу, еслиNestedScrollView не вCoordinatorLayout но как только вы положите его внутрьCoordinatorLayout прокрутка не выполняется.

Проблема с RecyclerView

Для того же макета, если я заменюNestedScrollView сRecyclerView Есть также проблемы с прокруткой.

В этом случае я используюRecyclerViewAction.scrollToPosition(position), в отличие отNestedScrollViewЗдесь я вижу прокрутку. Тем не менее, похоже, что он прокручивается в неправильную позицию. Например, если я прокручиваю до последней позиции, это делает видимым второе до последнего, но не последнее. Когда я двигаюRecyclerView внеCoordinatorLayout прокрутка работает как надо.

На данный момент мы не можем написать ни одного теста эспрессо для экранов, которые используютCoordinatorLayout из-за этого проблемы. Кто-нибудь испытывает те же проблемы или знает обходной путь?

Ответы на вопрос(7)

Ваш ответ на вопрос