排毒平面列表不滚动

Detox Flatlist not scrolling

我有一个这样的导航器结构:

stack drawer stack tab

我的层次结构是:

view
 view
  flatlist

我想让我的平面列表向下滚动。您可以看到手指动画,但列表没有移动。您可以在这张 gif 中看到它:

Screen Recording 2018-03-16 at 11.30 p.m..gif

这是我的代码:

it('should have infinite scrolling', async () => {
  await expect(element(by.id('NewsFeed.Scroller'))).toBeVisible();
  await expect(element(by.id('NewsFeedScreen.ArticleListing-0'))).toExist();
  await expect(element(by.id('NewsFeedScreen.ArticleListing-10'))).toNotExist();
  await element(by.id('NewsFeed.Scroller')).scroll(10000, 'down');
  await expect(element(by.id('NewsFeedScreen.ArticleListing-10'))).toExist();
});

我认为问题在于滚动操作是从屏幕底部开始的。当我自己尝试在那里启动滚动表单时,它也不起作用。我在 API 中没有看到任何允许我在该手势开始的位置设置偏移量的内容。查看 inspect 中的那个元素会发现它不在 Detox 开始其手势的区域:https://d3vv6lp55qjaqc.cloudfront.net/items/323C3D3U3y1Y2Z1B2L2J/Screen%20Shot%202018-03-16%20at%2023.47.48.png?X-CloudApp-Visitor-Id=2852073&v=31521c3c

在我们等待 https://github.com/wix/detox/issues/589 解决的过程中,我找到了一个足够好的解决方案。

await element(by.id('NewsFeedScreen.ArticleListing-0')).swipe('up', 'fast', 0.9);

https://github.com/wix/detox/blob/master/docs/APIRef.ActionsOnElement.md#swipedirection-speed-percentage

结果是我正在寻找的行为,在我的列表中向下滚动

如果有人现在遇到这个问题 - 尝试使用 .scroll() 方法的 startPositionXstartPositionY 参数,例如:

await element(by.id('scrollView')).scroll(200, 'down', NaN, 0.5)

当我遇到同样的问题时,对我来说就像一个魅力。

https://github.com/wix/Detox/blob/master/docs/APIRef.ActionsOnElement.md#scrolloffset-direction-startpositionx-startpositiony