возможность прокручивать бесконечное круговое представление рециркулятора, но не может нажать на конкретный элемент списка - PullRequest
0 голосов
/ 19 января 2019

Я работаю над приложением, в котором разработчики создали бесконечный круговой вид переработчика. Во время использования приложения вы можете бесконечно прокручивать представление переработчика. Для этого вам нужно нажать на любой элемент в представлении переработчика и прокрутить. Как только вы видите нужный элемент на экране, вам нужно оставить палец, и как только вы оставите палец, фон экрана изменит цвет, и на экране появится соответствующая кнопка. Теперь, это где я сталкиваюсь с проблемой.

Я использовал библиотеки Espresso и Barista для прокрутки списка, и мне это удалось. Я использовал следующий код для прокрутки:

Библиотеки бариста:

scrollListToPosition(R.id.recyclerview, 5);

clickListItem(R.id.recyclerview, 6);

Кроме того, библиотеки эспрессо:

onView(withId(R.id.content_view)).perform(RecyclerViewActions.scrollToPosition(5));

Используя оба вышеописанных метода, я могу прокручивать список, и на экране появляется правильный элемент, но цвет фона не изменяется, и соответствующая кнопка не отображается на экране. (Если я сравниваю это поведение с реальным устройством, это происходит, когда я провожу пальцем вверх, но не оставляю палец на экране. И как только я оставляю палец, цвет меняется, и появляется кнопка). Итак, в Короче говоря, я могу прокручивать, но не могу имитировать поведение, когда палец отходит от экрана.

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Я нашел ответ на поставленный выше вопрос. Щелчок и прокрутка должны выполняться спина к спине, как перетаскивание:

onView(withId(R.id.recycler_view)).perform(actionOnItemAtPosition(0, longClick()));

onView(withId(R.id.recycler_view)).perform(actionOnItemAtPosition(1, swipeUp()));

С помощью этого кода я долго нажимаю на 0-й элемент, а затем проведу пальцем до 1-го элемента.

0 голосов
/ 19 января 2019

В Espresso вы можете использовать RecyclerViewActions.actionOnItemAtPosition и выполнять длинный щелчок, чтобы оставить палец на руке:

onView(withId(R.id.content_view)).perform(RecyclerViewActions.actionOnItemAtPosition(5, longClick()));
...