-1

에 대한 에스프레소의 일부 항목 위치에 아이를 찾을 그들은 단지 대부분의 경우 방법나는 에스프레소 샘플을 통해 찾고있다 recyclerview

actionOnItemAtPosition 

이하로 사용하여 일부 위치에 클릭을 수행 할 수있는 직접적인 방법을 제공하는 방법 우리는 것 어떤 위치에서 항목에있는 여러 자식 중 하나를 클릭해야합니다. TextView, ImageView 및 Checkbox와 같습니다.

Recyclerview에 50 개의 항목이있는 경우 위치 25의 확인란에 도달하는 간단한 방법은 없습니다. 누구나 내 자신의 ViewAction 구현 정의 이외의 다른 간단한 솔루션을 사용할 수 있습니까?

답변

0

이 같은 자신의 withIndex 정규를 만들 수 있습니다

public static Matcher<View> withIndex(final Matcher<View> matcher, final int index) { 
    return new TypeSafeMatcher<View>() { 
     int currentIndex = 0; 

     @Override 
     public void describeTo(Description description) { 
      description.appendText("with index: "); 
      description.appendValue(index); 
      matcher.describeTo(description); 
     } 

     @Override 
     public boolean matchesSafely(View view) { 
      return matcher.matches(view) && currentIndex++ == index; 
     } 
    }; 
} 

사용 예

int indexToSelect = 4; 
onView(allOf(withIndex(withId(R.id.textViewToSelect), indexToSelect), isDescendantOfA(withId(R.id.customRecyclerView)))).perform(click());