簡體   English   中英

在RecyclerView上滑動測試片狀

[英]swipe tests flaky on RecyclerView

我有一個帶有ItemTouchHelper的RecyclerView來刷內部項目LEFT和RIGHT - 當我通過espresso執行swipeLeft()和swipeRight()時,如下所示:

onView(withId(R.id.pass_recyclerview)).perform(RecyclerViewActions.actionOnItemAtPosition(0,swipeRight()));

但不幸的是,測試是不穩定的 - 在某些設備上它們工作,而在某些設備上它們沒有 - 是否有可靠的方法來執行此滑動操作? 我已經玩過其他EDGE_FUZZ_FACTOR了 - 但這也不是讓它100%工作的方法

更新:我更多地調試了問題 - 某些設備在某些設備之間有一個取消事件:

event_t1 = {android.view.MotionEvent@830019549128}“MotionEvent {action = ACTION_DOWN,id [0] = 0,x [0] = 546.0,y [0] = 40.0,toolType [0] = TOOL_TYPE_UNKNOWN,buttonState = 0, metaState = 0,flags = 0x0,edgeFlags = 0x0,pointerCount = 1,historySize = 0,eventTime = 788701990,downTime = 788701990,deviceId = 0,source = 0x1002}“

event_t2 = {android.view.MotionEvent@830019178264}“MotionEvent {action = ACTION_CANCEL,id [0] = 0,x [0] = 500.98276,y [0] = 40.0,toolType [0] = TOOL_TYPE_UNKNOWN,buttonState = 0, metaState = 0,flags = 0x0,edgeFlags = 0x0,pointerCount = 1,historySize = 1,eventTime = 788722868,downTime = 788701990,deviceId = 0,source = 0x1002}“

我在ItemTouchHelper的“公共布爾onInterceptTouchEvent(RecyclerView recyclerView,MotionEvent事件)”中看到了這一點。 這是我在那里看到的唯一事件 - 有趣的是,當激活屏幕疊加顯示觸摸數據時,我看到刷卡在此取消后完成正常~1 / 10的方式

也許問題是默認的swipeLeft / Right實現使用按壓式FINGER(這意味着16x16 mm)。 您可以嘗試創建自己的滑動實現,如此處所述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM