Espresso Recyclerview scroll to end

前端 未结 3 1932
梦毁少年i
梦毁少年i 2020-12-31 06:44

I have an Android application which has a RecyclerView with N elements, and when this RecyclerView reaches to end when scrolling, then more elements are added (so, it\'s an

相关标签:
3条回答
  • 2020-12-31 07:03

    I use the below to scroll to the bottom of my RecyclerView.

    activity = mActivityTestRule.launchActivity(startingIntent);
    
    onView(withId(R.id.recyclerView))
                    .perform(RecyclerViewActions.scrollToPosition(activity.recyclerView.getAdapter().getItemCount() - 1));
    

    You'll then have to use idling resources (or Thread.sleep()) to call this again when more data has loaded.

    0 讨论(0)
  • 2020-12-31 07:12

    you can implement ViewAction. like this:

    class ScrollToBottomAction : ViewAction {
    override fun getDescription(): String {
        return "scroll RecyclerView to bottom"
    }
    
    override fun getConstraints(): Matcher<View> {
        return allOf<View>(isAssignableFrom(RecyclerView::class.java), isDisplayed())
    }
    
    override fun perform(uiController: UiController?, view: View?) {
        val recyclerView = view as RecyclerView
        val itemCount = recyclerView.adapter?.itemCount
        val position = itemCount?.minus(1) ?: 0
        recyclerView.scrollToPosition(position)
        uiController?.loopMainThreadUntilIdle()
    }
    }
    

    and then use it like this:

    onView(withId(R.id.recyclerView)).perform(ScrollToBottomAction())
    
    0 讨论(0)
  • 2020-12-31 07:15

    I use this ;

     // Get total item of myRecyclerView
    RecyclerView recyclerView = mActivityTestRule.getActivity().findViewById(R.id.myRecyclerView);
    int itemCount = recyclerView.getAdapter().getItemCount();
    
    Log.d("Item count is ", String.valueOf(itemCount));
    
    // Scroll to end of page with position
    onView(withId(R.id.myRecyclerView))
        .perform(RecyclerViewActions.scrollToPosition(itemCount - 1));
    
    0 讨论(0)
提交回复
热议问题