这就是我的HorizontalScrollView
的样子:
<HorizontalScrollView
android:layout_below="@id/saved_circuits_title"
android:id="@+id/saved_circuits_scrollview"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<LinearLayout
android:id="@+id/saved_circuits_scroll"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:orientation="horizontal">
</LinearLayout>
</HorizontalScrollView>
在我的
HomeActivity
中,我有以下相关代码用位图填充HorizontalScrollView
。onCreate{
...
this.savedCircuitsScroll = (LinearLayout) findViewById(R.id.saved_circuits_scroll);
...
}
updateSavedCircuits(){
...// code to make an ImageView from a retrieved bitmap
newImageImage.setOnClickListener(this.thumbnailListener);
this.savedCircuitsScroll.addView(newImageImage);
...
}
如何使用Espresso滚动到水平滚动视图中指定索引处的ImageView并单击它?
我试过的
我的布局xml中没有id,因此this这样的方法不起作用:
onView( withId( R.id.button)).perform( scrollTo(), click());
我知道你可以找到一种类似的方法来解决:
onView(withId(R.id.saved_circuits_scroll))
.perform(HorizontalScrollViewActions.actionOnItemAtPosition(0, click()));
除了
HorizontalScrollViews
以外不存在。或者在click on an item by index in a RecyclerView之后,我尝试了以下操作,以至少单击指定索引处
HorizontalScrollViewActions
中的某个项:// Click item at position 3
onView(withHorizontalScrollView(R.id.scroll_view).atPosition(3)).perform(click());
// Convenience helper
public static HorizontalScrollViewMatcher withHorizontalScrollView(final int horizontalScrollViewId) {
return new HorizontalScrollViewMatcher(horizontalScrollId);
}
除了
HorizontalScrollView
以外不存在。我们该为
HorizontalScrollViewMatcher
做些什么?它不是HorizontalScrollView
的后代,因此答案this blog建议我需要实现自己的自定义ScrollView
。我所要做的就是按索引滚动到ViewAction
中的项目并单击它。真的需要这个吗?如果这是我需要做的,我应该如何实现这个定制HorizontalScrollView
? 最佳答案
在我的案例中,我是通过使用:
onView(allOf(withId(R.id.itemTextView), withEffectiveVisibility(Visibility.VISIBLE), withText(R.string.categories))).perform(scrollTo(), click())
R.id.itemTextView
是动态添加到<HorizontalScrollView>
<LinearLayout>
... [child added dynamically]
</LinearLayout>
</HorizontalScrollView>
关于android - Espresso:如何按索引滚动到HorizontalScrollView中的项目?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40903900/