Как можно прокручивать вниз до ScrollView в тесте Espresso? Спасибо!Espresso: как прокручивать до конца ScrollView
ответ
Если в нижней части ScrollView вам нужно найти представление и сопоставить что-то против него, просто выполните действие scrollTo()
перед ним, перед любыми другими действиями, требующими его отображения.
onView(withId(R.id.onBottomOfScrollView))
.perform(scrollTo(), click());
Примечание: scrollTo не будет иметь никакого эффекта, если уже отображается вид, так что вы можете спокойно использовать его в тех случаях, когда представление отображается
Также и можно попробовать:
public Matcher<View> getConstraints() {
return allOf(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE), isDescendantOfA(anyOf(
isAssignableFrom(ScrollView.class), isAssignableFrom(HorizontalScrollView.class), isAssignableFrom(NestedScrollView.class))));
Если у вас есть вид внутри android.support.v4.widget.NestedScrollView вместо scrollView scrollTo() не работает.
Где я могу поставить этот метод? – Ixx
Я считаю, что в этом ответе отсутствует информация для тех, кто еще не полностью осведомлен. Пожалуйста, проверьте https://stackoverflow.com/questions/35272953/espresso-scrolling-not-working-when-nestedscrollview-or-recyclerview-is-in-coor для получения полного ответа –
Для полноты (на основе ответа Морозова), вы можете передать пользовательские ViewAction
вместо scrollTo()
, что позволяет использовать NestedScrollView
:
ViewAction customScrollTo = new ViewAction() {
@Override
public Matcher<View> getConstraints() {
return allOf(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE), isDescendantOfA(anyOf(
isAssignableFrom(ScrollView.class),
isAssignableFrom(HorizontalScrollView.class),
isAssignableFrom(NestedScrollView.class)))
);
}
@Override
public String getDescription() {
return null;
}
@Override
public void perform(UiController uiController, View view) {
new ScrollToAction().perform(uiController, view);
}
};
И использовать его как это:
onView(withId(R.id.onBottomOfScrollView)).perform(customScrollTo, click());
для меня при использовании nestedScrollview я просто swipeUp (если вы хотите идти вниз) .. вот пример вызова:
onView(withId(R.id.nsv_container))
.perform(swipeUp());
- 1. Espresso: Recyclerview прокрутить до конца
- 2. Автоматически прокручивать до конца div
- 3. ScrollView не прокручивается до конца.
- 4. Android ScrollView Прокрутить до конца
- 5. Как надежно прокручивать Virtual TreeView до конца?
- 6. ScrollView не будет прокручиваться до конца
- 7. Как прокручивать программно ScrollView?
- 8. ScrollView не прокручивается до конца представления
- 9. ScrollView не может прокручивать
- 10. scrollview не может прокрутить страницу до конца
- 11. ScrollView отказывается прокручивать
- 12. Обнаружение ScrollView достигло конца
- 13. Как постоянно прокручивать до конца текста в многострочном текстовом поле?
- 14. Как автоматически прокручивать, когда изображение перетаскивается до конца в Android
- 15. Как прокрутить до конца System.Windows.Forms.WebBrowser?
- 16. ScrollView не прокручивать Android 5.0.2
- 17. Почему нельзя прокручивать ScrollView Programmatically?
- 18. ScrollView не будет прокручивать AHHH
- 19. [Пользовательский ScrollView не может прокручивать
- 20. ScrollView не будет прокручивать страницу
- 21. Прокрутить до конца
- 22. Windows phone 8, listbox, можно прокручивать до конца авто?
- 23. Обнаружение конца перехода на ScrollView
- 24. ScrollView, как прокручивать нижнюю часть другого вида
- 25. Как прокручивать автоматически до точки на изображении
- 26. Как прокрутить страницу до конца
- 27. Прокрутите до конца ckeditor
- 28. ScrollView не прокручивается до конца внутреннего края LinearLayout
- 29. Scroll ScrollView до середины
- 30. (Android) ScrollView не будет прокручиваться до конца моего LinearLayout
Каким образом это не работает с 'NestedScrollView'? –
Я не пробовал это, но сделаю снимок и напишу новый вопрос с вопросом. – appoll
работает только в том случае, если вы знаете свои дочерние элементы - что делать, если вы не знаете последний элемент? – PKAP