我有一个包含EditText的视图,我想确保它们以正确的顺序显示。我使用Espresso但我不知道如何通过索引获取视图的孩子。这是一种方法吗?
答案 0 :(得分:0)
我终于找到了答案here。 我们的想法是创建一个新的Matcher。 这是一种更好的方法,直接使用Espresso而不创建匹配器吗?
public static Matcher<View> nthChildOf(final Matcher<View> parentMatcher, final int childPosition) {
return new TypeSafeMatcher<View>() {
@Override
public void describeTo(Description description) {
description.appendText("position " + childPosition + " of parent ");
parentMatcher.describeTo(description);
}
@Override
public boolean matchesSafely(View view) {
if (!(view.getParent() instanceof ViewGroup)) return false;
ViewGroup parent = (ViewGroup) view.getParent();
return parentMatcher.matches(parent)
&& parent.getChildCount() > childPosition
&& parent.getChildAt(childPosition).equals(view);
}
};
}