【发布时间】:2015-02-27 09:44:07
【问题描述】:
在一个活动中,我有一个 ViewPager 带有 2 个选项卡:“全部”和“已过滤”。
两个页面使用相同的Fragment 来显示数据,不同之处在于“已过滤”页面按某些条件过滤数据。
我想点击“全部”页面中的一个项目(可能也存在于“已过滤”页面中),如果我这样做:
onData(transactionWithId(960L)).perform(click());
作为回应,我得到:
AmbiguousViewMatcherException: '可从类中赋值:类 android.widget.AdapterView' 匹配层次结构中的多个视图
然后我尝试通过指定一个附加约束来优化我的描述,我正在寻找一个可见的项目:
onData(allOf(transactionWithId(960L), isDisplayed())).perform(click());
我也遇到了同样的错误。
然后我想以某种方式指定,我正在“所有”选项卡中寻找我的项目(虽然不确定这是否正确):
onData(allOf(
transactionWithId(960L),
withParent(withText("ALL")))
).perform(click());
但同样的错误。
然后我尝试指定我正在寻找当前在我面前的AdapterView:
onData(allOf(
is(instanceOf(Transaction.class)),
transactionWithId(960L))
).inAdapterView(allOf(
isAssignableFrom(AdapterView.class),
isDisplayed())
).perform(click());
我得到了:
PerformException:在视图 '(是 可从类分配:类 android.widget.AdapterView 并且是 在屏幕上显示给用户)'。
请注意,我可以单击带有单个 ListView 的 Activity 中显示的项目,我面临的挑战是当我有一个带有多个选项卡的 ViewPager 时,使用一个 Fragment 来显示数据。
将不胜感激。
【问题讨论】: