如何在浓缩咖啡中的某些物品位置找到回收瓶



我一直在查看浓缩咖啡样本,但它们仅提供直接的方法来使用以下方法

在某些位置执行单击
actionOnItemAtPosition

在大多数情况下,我们需要单击某个位置上的多个孩子之一。像文本视图,imageView和复选框。

如果我的回收库有50个项目,我看不到在位置25的复选框的任何简单方法。除了定义我自己的视图实现外,任何人都可以使用任何简单的解决方案。

您可以创建自己的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());

相关内容

  • 没有找到相关文章

最新更新