簡體   English   中英

濃縮咖啡 - 單擊嵌套回收站視圖中的項目

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM