使用 Espresso 滚动新的 ListActivity
scroll new ListActivity with Espresso
如何点击我看不到的项目lit7.txt?
我无法使用 Espresso 滚动 MyListActivity 并单击特定项目。我想点击 lit7.txt 项目,但我在屏幕上看不到它。我需要向下滚动。但是怎么办?
screen image with MyListActivity(DirectoryViewer) and lit7.txt
我可以点击"Browse..."
Espresso.onView(Matchers.allOf(ViewMatchers.withText("Browse..."))).perform(ViewActions.click());
我可以点击histo2.txt
Espresso.onView(Matchers.allOf(ViewMatchers.withText("histo2.txt"))).perform(ViewActions.click());
但是如何点击我看不到的项目lit7.txt?
所以,我加载我的 ListActivity(DirectoryViewer)
protected void onLoad(){
Intent intent = new Intent(this, DirectoryViewer.class);
intent.putExtra(DirectoryViewer.ASSET_DIRECTORY_LOCATION, "books");
startActivityForResult(intent, 1);}
DirectoryViewer 是:
class DirectoryViewer extends ListActivity
...
void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String dirName = getIntent().getStringExtra(ASSET_DIRECTORY_LOCATION);
List<ListItem> items = new ArrayList<ListItem>();
items.add(new BrowseListItem(getString(R.string.my_browse)));//Browse...
items.add(new HeaderItem(getString(R.string.myItems)));//ITEMS
AssetManager am = getResources().getAssets();//files
try {
String[] topLevel = am.list(dirName);
for (String folder : topLevel) {
...
}
}
}
我建议查看 onData method,它允许您与 ListView 中的信息进行交互。
这将滚动列表视图直到第 20 个项目可见。
onData(hasEntry(equalTo(ListViewSample.ROW_TEXT),is("List item: 20")))
.check(matches(isCompletelyDisplayed()));
如何点击我看不到的项目lit7.txt?
我无法使用 Espresso 滚动 MyListActivity 并单击特定项目。我想点击 lit7.txt 项目,但我在屏幕上看不到它。我需要向下滚动。但是怎么办?
screen image with MyListActivity(DirectoryViewer) and lit7.txt
我可以点击"Browse..."
Espresso.onView(Matchers.allOf(ViewMatchers.withText("Browse..."))).perform(ViewActions.click());
我可以点击histo2.txt
Espresso.onView(Matchers.allOf(ViewMatchers.withText("histo2.txt"))).perform(ViewActions.click());
但是如何点击我看不到的项目lit7.txt?
所以,我加载我的 ListActivity(DirectoryViewer)
protected void onLoad(){
Intent intent = new Intent(this, DirectoryViewer.class);
intent.putExtra(DirectoryViewer.ASSET_DIRECTORY_LOCATION, "books");
startActivityForResult(intent, 1);}
DirectoryViewer 是:
class DirectoryViewer extends ListActivity
...
void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String dirName = getIntent().getStringExtra(ASSET_DIRECTORY_LOCATION);
List<ListItem> items = new ArrayList<ListItem>();
items.add(new BrowseListItem(getString(R.string.my_browse)));//Browse...
items.add(new HeaderItem(getString(R.string.myItems)));//ITEMS
AssetManager am = getResources().getAssets();//files
try {
String[] topLevel = am.list(dirName);
for (String folder : topLevel) {
...
}
}
}
我建议查看 onData method,它允许您与 ListView 中的信息进行交互。
这将滚动列表视图直到第 20 个项目可见。
onData(hasEntry(equalTo(ListViewSample.ROW_TEXT),is("List item: 20")))
.check(matches(isCompletelyDisplayed()));