【发布时间】:2014-08-04 17:51:22
【问题描述】:
我有一个使用本机操作栏选项卡作为指示器的 viewpager。我想导航到不同的选项卡,但 Tab 组件不是视图,因此 onView 或 withText 在执行点击时无法正常工作。
我可以通过特定的方式浏览 Tab 导航吗?
【问题讨论】:
标签: tabs android-actionbar android-viewpager android-espresso
我有一个使用本机操作栏选项卡作为指示器的 viewpager。我想导航到不同的选项卡,但 Tab 组件不是视图,因此 onView 或 withText 在执行点击时无法正常工作。
我可以通过特定的方式浏览 Tab 导航吗?
【问题讨论】:
标签: tabs android-actionbar android-viewpager android-espresso
您可以使用滑动在标签之间导航:
onView(withId(R.id.viewpager)).perform(swipeLeft());
onView(withId(R.id.viewpager)).perform(swipeRight());
【讨论】:
假设标签上有文字,你可以这样做:
onView(withText("Tab Text")).perform(click())
onView、withText 和 click 是静态导入。
【讨论】:
我创建了以下方法来选择显示文本的任何选项卡。
public MainScreen clickOnTab(String tabText) {
onView(allOf(withClassName(endsWith("TabView")),
withChild(withText(tabText)),
withParent(withParent(withId(R.id.main_activity_tab_layout)))
)).perform(scrollTo()).perform(click());
return this;
}
为了调用此方法,只需调用如下方法:
MainScreen.getInstance().clickOnTab("Tab Name");
干杯
【讨论】: