Espresso:如何点击 viewpager 中的 StickyListHeadersListView 项目
Espresso: how to click on StickyListHeadersListView item inside viewpager
我有 ViewPager 和 N 个选项卡,每个选项卡中都有 StickyListHeadersListView。我想执行单击列表项之一。我怎么能那样做?
谢谢!
PS: 我只对 Espresso 测试代码感兴趣
使用 Listview,您放入 fragment.view 寻呼机有片段。在您可以检查片段中的单击列表项之后。
自定义:https://github.com/JakeWharton/ViewPagerIndicator
将此代码放在要在 viewPager 中添加视图的方法中:-
for(int i=0;i<arrPagerItems.size();i++)
{
View viewPager;
ListView listView;
viewPager = inflater.inflate(R.layout.layout_pager,null);
listView = (ListView) viewPager.findViewById(R.id.listView);
listChat.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View listView,int position,long arg3) {
//do your task
}
});
viewPagerAdapter.addView(viewPager, i);
viewPagerAdapter.notifyDataSetChanged();
}
我自己找到了解决方案。
主要问题 - StickyListHeadersListView 是 ListView 的包装器,它不扩展 ListView。所以我们不能直接使用适配器,但我们可以这样做:
onData(anything()).inAdapterView(allOf(
isAssignableFrom(AdapterView.class),
isDescendantOfA(withId(R.id.list)),
isDisplayed()))
.atPosition(1).perform(click());
我有 ViewPager 和 N 个选项卡,每个选项卡中都有 StickyListHeadersListView。我想执行单击列表项之一。我怎么能那样做? 谢谢!
PS: 我只对 Espresso 测试代码感兴趣
使用 Listview,您放入 fragment.view 寻呼机有片段。在您可以检查片段中的单击列表项之后。 自定义:https://github.com/JakeWharton/ViewPagerIndicator
将此代码放在要在 viewPager 中添加视图的方法中:-
for(int i=0;i<arrPagerItems.size();i++)
{
View viewPager;
ListView listView;
viewPager = inflater.inflate(R.layout.layout_pager,null);
listView = (ListView) viewPager.findViewById(R.id.listView);
listChat.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View listView,int position,long arg3) {
//do your task
}
});
viewPagerAdapter.addView(viewPager, i);
viewPagerAdapter.notifyDataSetChanged();
}
我自己找到了解决方案。 主要问题 - StickyListHeadersListView 是 ListView 的包装器,它不扩展 ListView。所以我们不能直接使用适配器,但我们可以这样做:
onData(anything()).inAdapterView(allOf(
isAssignableFrom(AdapterView.class),
isDescendantOfA(withId(R.id.list)),
isDisplayed()))
.atPosition(1).perform(click());