单击Espresso中AdapterView中的最后一项

时间:2016-01-22 16:47:38

标签: android listview android-espresso

我正在处理应用笔记。我添加了一个注释,它被添加到列表的底部。作为espresso测试中的最后一个断言,我想确保ListView显示刚刚添加的listItem。这意味着抓住listView中的最后一项。我想你可能会以其他方式做到这一点? (例如,获取适应数据的大小,并转到那个位置?也许?),但列表的最后位置似乎很容易,但我还没有能够做到。有什么想法吗?

我已经尝试过这个解决方案,但Espresso似乎已经挂了。 http://www.gilvegliach.it/?id=1

1 个答案:

答案 0 :(得分:1)

<强> 1。找到listView适配器中的元素数量并将其保存在某个变量中。我们假设适配器已经完全加载到现在。:

    final int[] numberOfAdapterItems = new int[1]; 
    onView(withId(R.id.some_list_view)).check(matches(new TypeSafeMatcher<View>() {
        @Override
        public boolean matchesSafely(View view) {
            ListView listView = (ListView) view;

            //here we assume the adapter has been fully loaded already  
            numberOfAdapterItems[0] = listView.getAdapter().getCount();

            return true;
        }

        @Override
        public void describeTo(Description description) {

        }
    }));

<强> 2。然后,知道listView适配器中的元素总数,您可以滚动到最后一个元素:

    onData(anything()).inAdapterView(withId(R.id.some_list_view)).getPosition(numberOfAdapterItems[0] - 1).perform(scrollTo())                                  
相关问题