Sembra CoordinatorLayout
rompe il comportamento delle azioni Espresso quali scrollTo()
o RecyclerViewActions.scrollToPosition()
.Espresso, lo scorrimento non funziona quando NestedScrollView o RecyclerView è in CoordinatorLayout
Problema con NestedScrollView
Per un layout come questo:
<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>
Se provo a scorrere a qualsiasi vista all'interno del NestedScrollView
utilizzando ViewActions.scrollTo()
il primo problema che ho trovato è che ho un PerformException
. Questo perché questa azione supporta solo ScrollView
e NestedScrollView
non la estende. Una soluzione per questo problema è spiegata here, in pratica possiamo copiare il codice in scrollTo()
e modificare i vincoli per supportare NestedScrollView
. Questo sembra funzionare se lo NestedScrollView
non è in uno CoordinatorLayout
ma non appena lo si inserisce in uno CoordinatorLayout
l'azione di scorrimento non riesce.
Problema con RecyclerView
Per lo stesso layout, se si sostituisce la NestedScrollView
con un RecyclerView
c'è anche problemi con il lo scorrimento.
In questo caso sto usando RecyclerViewAction.scrollToPosition(position)
. A differenza del NestedScrollView
, qui posso vedere alcuni eventi di scorrimento. Tuttavia, sembra che scorra nella posizione sbagliata. Ad esempio, se si scorre fino all'ultima posizione, rende visibile la penultima ma non l'ultima. Quando sposto lo RecyclerView
dello CoordinatorLayout
, lo scorrimento funziona come dovrebbe.
Al momento non è possibile scrivere alcun test Espresso per gli schermi che utilizzano CoordinatorLayout
a causa di questi problemi. Qualcuno sta vivendo gli stessi problemi o conosce una soluzione alternativa?
Ho un problema, in cui RecycleView si trova all'interno di NestedScrollview. Non riesco a utilizzare recycleview.scrollToPosition (X); , semplicemente non funziona. Ho provato tutto negli ultimi 6 giorni, ma posso superarlo. qualche suggerimento? Sarei molto grato! – Karoly