RecyclerViewActions.scrollTo()
onCreateViewHolder()
のアダプターでは、ViewHolder
のItemView
と一致している。 scrollTo()
が機能するようにするには、ItemView
を一意に識別するマッチャーを指定する必要があります。
あなたの現在のマッチャーは、エスプレッソにTextView
としてitemView
というように膨張されたViewHolderにスクロールするよう指示します。どちらが起こる可能性がありますが、通常は、ビューホルダーを見た目にスタイルを設定するために、いくつかのViewGroup
アクションが実行されています。
scrollTo()
Matcherを変更した場合は、ネストされたすべてのレイアウト(複数ある場合)を考慮してhasDescendant(withText("Text XYZ"))
になります。それはこの場合には、ID R.id.recycler_view
とRecyclerView
である、現在のViewInteraction
にクリックをお送りしますので、あなたは同じperform()
でそれを行うことはできません - あなたはまた、項目をクリックしようとしているので、
も留意してください。同じ演奏でこれを行うと、スクロールしたアイテムではなく、RecyclerView
の中央をクリックするだけです。
これを解決するには、アイテムにスクロールしたり、RecyclerView.actionOnItem()
を使用していたマッチャで別のonView()
が必要です。別のonView()
文の場合は
それらはすべて、この特定の子孫を持っているとして、それはそれのTextView(viewholder、recyclerview、その上recyclerviewを保持しているとのViewGroup)のすべての親を見つけるため、hasDescendant(withText("Text XYZ"))
は、あなたが失敗します。これにより、より正確な入れ子になり、すべてのネストされたレイアウトを考慮する必要があります(ItemView
)。このような状況では、私の通常のマッチャーはwithChild()
ですが、あなたとは異なる場合があります。
が動作していないようです - エラーログ – piotrek1543
をスクロールする前に表示されていることを確認してください。 – denys
@denys ckeckは実際のrecyclerview用です。 recyclerviewが実際には表示されない限り、違いはありません。 –