[英]Espresso - Click item inside a nested recyclerview
所以,我在 recyclerview 中有一個 recyclerview。 我想要做的是單擊子回收器視圖中第一項(在 position 0)內的圖像。 我要怎么做? 每個答案都不起作用。 謝謝你。
所以,我在 recyclerview 中有一個 recyclerview。 我想要做的是單擊子回收器視圖中第一項(在 position 0)內的圖像。
查閱文檔,我們看到有幾個選項。
所以你想對主回收器執行一個操作。 該操作是對子回收器執行另一個回收器視圖操作。 然后點擊圖片。 在 Espresso 術語中,這意味着:
// Starting from the bottom up, you want to click on the image
val clickOnImage = actionOnItem(withId(R.id.image_view), click())
// Next you want to do the above click action on the specific view in the child recycler
val clickOnImageOnChildRecycler = actionOnItemAtPosition(0, clickOnImage)
// Next you want to do the above on the specific child recycler
val clickOnChildReycler = actionOnItemAtPosition(INDEX_OF_CHILD_RECYCLER, clickOnImageOnChildRecycler)
// Finally, you want to do the clicking of a child on the main recycler
onView(withId(R.id.parent_recycler_view)).perform(clickOnChildReycler)
然后你可以簡化和內聯:
onView(withId(R.id.parent_recycler_view)) // On the parent recycler ...
.perform(actionOnItemAtPosition(INDEX_OF_CHILD_RECYCLER, // On the specific child recycler ...
actionOnItemAtPosition(0, // On the first item ...
actionOnItem(withId(R.id.image_view), click()))) // Click the image ...
go 應該不說我沒有測試這個,但希望它可以工作或至少讓你走上正確的道路。
我是這樣做的:
//滾動到Parent Recyclerview的第2個Position onView(withId(PARENT_RECYCLERVIEW_ID)).perform(actionOnItemAtPosition(1, scrollTo()));
//添加這一行只是為了確保我已經在 Child Recyclerview onView(withId(PARENT_RECYCLERVIEW_ID)).perform(actionOnItemAtPosition(1, CustomViewAction.clickChildViewWithId(CHILD_RECYCLERVIEW_ID)));
//點擊子recyclerview第一項里面的Image
onView(allOf(withId(CHILD_RECYCLERVIEW_ID), withParent(withRecyclerView(PARENT_RECYCLERVIEW_ID).atPosition(1)))).perform(actionOnItemAtPosition(0, click()));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.