2016-02-14 67 views
2

片狀我有一個RecyclerView與ItemTouchHelper刷卡離開了內部項目和RIGHT - 當我通過咖啡進行swipeLeft()和他們swipeRight()這樣的:刷卡測試上RecyclerView

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

,但不幸的是,測試是片狀的 - 在某些設備上它們工作並且在某些設備上不工作 - 是否有可靠的方法來執行此刷卡操作?我已經打得四處其他EDGE_FUZZ_FACTORs - 但這也沒有讓它工作100%的方式

更新: 我調試的問題有點多 - 不知何故在某些設備上存在之間的取消事件:

EVENT_T1 = {[email protected]}「MotionEvent {行動= 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,i d [0] = 0,X [0] = 500.98276,Y [0] = 40.0,Tooltype刀具[0] = TOOL_TYPE_UNKNOWN,buttonState = 0,亞狀態= 0,標誌=爲0x0,edgeFlags =爲0x0,pointerCount = 1,historySize = 1,eventTime = 788722868,downTime = 788701990,deviceId = 0,source = 0x1002}「

我在ItemTouchHelper的」public boolean onInterceptTouchEvent(RecyclerView recyclerView,MotionEvent event)「上看到這個。 這些是我在那裏看到的唯一事件 - 有趣的是,當激活屏幕覆蓋顯示觸摸數據,然後我看到滑動完成罰款後取消約1/10的方式

+0

添加請嘗試失敗logcat。也許這recyclerView沒有正確看到一些設備 – piotrek1543

+0

不,我看到recyclerviews肯定 – ligi

回答

0

也許問題是,默認swipeLeft /右執行正在使用按鍵式FINGER(這意味着16x16毫米)。您可以嘗試創建自己的滑動實現,如described here

+0

我嘗試了所有Press.FINGER,Press.PINPOINT,Press.Thumb - 同樣的行爲 - 也有不同EDGE_FUZZ_FACTORs - 沒有辦法解決這個問題對所有設備這條路 – ligi