2016-09-02 2 views
0

Предположим, я использую следующую команду:Сколько будет прокрутка вниз или вверх по нормальному вертикальному RecyclerView/list?

adb shell input touchscreen swipe x1 y1 x1 y2 50 

Как я могу знать, сколько пикселей будет на самом деле прокрутки?

Есть ли способ рассчитать его?

+0

Есть ли какая-либо особая причина для использования длительности '50ms'? –

+0

@ AlexP. Да, я думаю, что это минимальное время, но вы можете установить его на «t», если хотите: –

ответ

0

Значение по умолчанию параметра duration устанавливается в 300ms по причине - что-то меньшее, чем и ваш swipe имеет гораздо больше шансов стать fling (также в зависимости от дельты ваших координат) - который не будет точной и/или последовательной.

Таким образом, нет способа узнать, сколько пикселей ваша специальная команда (то есть с более короткой, чем рекомендуется) будет прокручиваться раньше времени.

+0

Почему я не могу рассчитать для броска? Кроме того, даже если это 300, сколько будет прокручиваться? Предположим, у меня есть listVew (или RecyclerView) с 1000 строками, каждый из которых равен 100dp, я хотел бы знать, сколько строк будет прокручиваться. –

+0

Как только вы установите длительность, достаточную для того, чтобы салфетка стала * перетаскиванием *, она становится достаточно последовательной, и вы можете предположить, что она будет прокручивать точное количество указанных вами пикселей. т.е. 'input swipe 300' команда где' x' и 'y' - абсолютные координаты центра виджета ListView (и высота не менее 400 пикселей) будут прокручивать ровно 200 пикселей. –

+0

Это просто, что мне нужно прокрутите список до конца как можно быстрее (все же переходите все строки). Я знаю количество строк, и я знаю высоту каждой строки. Вот почему я подумал, что бросок будет идеальным, но вы говорите, что я не могу рассчитать его достаточно хорошо, чтобы быть надежным. Могу ли я сделать салфетки на любое значение, которое я желаю? Даже вне экрана? –