UiAutomator筆記之UiScrollable API(六)
一、UiScrollable簡介
1、UiScrollable是UiCollection的子類。
2、UiScrollable專門處理滾動時間,提供各種滾動方法。
常用功能有:向前滾動、向後滾動、快速滾動、滾動到某個物件、設定滾動方向、設定滾動次數等。
二、API詳細介紹
1、快速滾動
(1)相關概念
步長:從一點到另一點使用的時間。步長越短滾動越快,反之步長越長滾動越慢。
掃動次數:觸發滾動的次數。
(2)相關API
返回值 |
API |
說明 |
boolean |
flingBackward() |
以步長為5快速向後滑動 |
boolean |
flingForward() |
以步長為5 |
boolean |
flingToBeginning(int maxSwipes) |
自定義掃動次數以步長為5快速滑動到開啟 |
boolean |
flingToEnd(int maxSwipes) |
自定義掃動次數以步長為5快速滑動到結束 |
(3)示例
UiScrollable scroll = new UiScrollable(new UiSelector.className(“android.widget.ListView”));
scroll.flingBackward();
2、獲取列表子元素
(1)相關API
返回值 |
API |
UiObject |
getChildByDescription(UiSelector childPattern, String text, boolean allowScrollSearch) |
是否允許滾動查詢獲取具備UiSelector條件元素集合後再以文字描述條件查詢物件 |
|
UiObject |
getChildByDescription(UiSelector childPattern, String text) |
預設滾動獲取具備UiSelector條件的元素集合後再以文字描述條件查詢物件 |
|
UiObject |
getChildByInstance(UiSelector childPattern, int instance) |
獲取具備UiSelector條件的子集,再從子集中按照例項篩選想要的元素(不滾動) |
|
UiObject |
getChildByText(UiSelector childPattern, String text, boolean allowScrollSearch) |
是否允許滾動獲取具備UiSelector條件的元素集合後再以文字條件查詢物件 |
|
UiObject |
getChildByText(UiSelector childPattern, String text) |
預設滾動獲取具備UiSelector條件元素集合後再以文字條件的查詢物件 |
如:
UiScrollable scroll = new UiScrollable(new UiSelector.className(“android.widget.ListView”));
UiObject obj = scroll.getChildByText(new UiSelector.className(“android.widget.TextView”,“號碼1”,true)); //當不滾動查詢,就跟UiCollection效果一樣
3、獲取與設定最大滾動次數常量值
(1)相關API
返回值 |
API |
說明 |
int |
getMaxSearchSwipes() |
獲取執行搜尋滑動過程中的最大滑動次數,預設常量為30 |
UiScrollable |
setMaxSearchSwipes(int swipes) |
設定最大可掃動次數 |
4、滑動區域校準常量設定與獲取
(1)相關概念
校準常量:指的是滑動操作座標時(起點和終點)的偏移量,即控制元件上不可滑動的區域佔比。
(2)相關API
返回值 |
API |
說明 |
double |
getSwipeDeadZonePercentage() |
校準常量預設值為0.1(10%) |
UiScrollable |
setSwipeDeadZonePercentage(double swipeDeadZonePercentage) |
設定控制元件上不可滑動的區域佔比 |
(3)示例
UiScrollable scroll = new UiScrollable(new UiSelector.className(“android.widget.ListView”));
scroll.setSwipeDeadZonePercentage(0.15); //設定listview校準常量為0.15,即距離listview頂部15%和底部15%的區域不可滑動,只有控制元件中部70%的區域可滑動。當校準常量設定為0.5時,控制元件的可滑動區域為0,滑動的動作效果將和單擊的效果一樣。
5、向前與向後滾動
(1)相關API
返回值 |
API |
說明 |
boolean |
scrollBackward(int steps) |
自定義步長向後滑動 |
boolean |
scrollBackward() |
以預設步長55向後滑動 |
boolean |
scrollDescriptionIntoView(String text) |
滾動到描述所在位置,並且儘量讓它居於螢幕中央 |
boolean |
scrollForward() |
以預設步長55向前滾動 |
boolean |
scrollForward(int steps) |
自定義步長向前滾動。 當步長很短(如1)時,滑動效果同單機;當步長很長時,滑動效果同雙擊。 |
6、滾動到某個物件
(1)相關API
返回值 |
API |
說明 |
boolean |
scrollIntoView(UiSelector selector) |
滾動到條件元素所在位置,並且儘量讓其居於螢幕中央 |
boolean |
scrollIntoView(UiObject obj) |
滾動到物件所在位置,並且儘量讓其居於螢幕中央 |
boolean |
scrollTextIntoView(String text) |
滾動到文字物件所在位置,並且儘量讓其居於螢幕中央 |
boolean |
scrollToBeginning(int maxSwipes) |
自定義最大滾動次數,滾動到開始位置 |
boolean |
scrollToBeginning(int maxSwipes, int steps) |
自定義最大滾動次數與步長,滾動到開始位置 |
boolean |
scrollToEnd(int maxSwipes, int steps) |
自定義最大滾動次數與步長,滾動到結束位置 |
boolean |
scrollToEnd(int maxSwipes) |
自定義最大滾動次數,滾動到結束位置 |
(2)示例
UiScrollable scroll = new UiScrollable(new UiSelector.className(“android.widget.ListView”));
UiSelector selector = new UiSelector().text(“號碼1”);
scroll.scrollIntoView(selector); //滾動到“號碼1”
scroll.scrollToEnd(10, 5); //以步長(速率)5滾動到列表底部,最多滾動10次。
7、設定滾動方向
(1)相關概念
(2)相關API
返回值 |
API |
說明 |
UiScrollable |
setAsHorizontalList() |
設定滾動方向設定為水平滾動 |
UiScrollable |
setAsVerticalList() |
設定滾動方向設定為縱向滾動 |
(3)示例
UiScrollable scroll = new UiScrollable(new UiSelector.className(“android.support.v4.view.ViewPager”));
scroll.setAsHorizontalList();
scroll.scrollBackward(); //水平方向往回滾動
scroll.scrollForward(); //水平方向往前滾動