2016-02-14 30 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