Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 反应本机滚动视图问题(跟踪整页滚动动作)_Javascript_Reactjs_React Native_React Native Android_Scrollview - Fatal编程技术网

Javascript 反应本机滚动视图问题(跟踪整页滚动动作)

Javascript 反应本机滚动视图问题(跟踪整页滚动动作),javascript,reactjs,react-native,react-native-android,scrollview,Javascript,Reactjs,React Native,React Native Android,Scrollview,我有一个滚动视图,其中包含覆盖整个屏幕的图像。屏幕底部有两个按钮,可用于下载图像或将图像设置为壁纸。我遇到的问题是,当单击按钮时,我不知道在水平滚动视图中查看的是哪个图像 我知道屏幕大小,并假设如果我可以从视图中当前查看的图像中获取内容偏移量或类似的内容,除以屏幕大小,可以让我知道我正在查看的阵列中的哪个图像来执行其余的功能 不幸的是,我不知道如何做到这一点下面的代码给出了一些上下文 { availibleBackgrounds.map(元素=>( )) } 提前感谢,, Chris。您需要

我有一个滚动视图,其中包含覆盖整个屏幕的图像。屏幕底部有两个按钮,可用于下载图像或将图像设置为壁纸。我遇到的问题是,当单击按钮时,我不知道在水平滚动视图中查看的是哪个图像

我知道屏幕大小,并假设如果我可以从视图中当前查看的图像中获取内容偏移量或类似的内容,除以屏幕大小,可以让我知道我正在查看的阵列中的哪个图像来执行其余的功能

不幸的是,我不知道如何做到这一点下面的代码给出了一些上下文


{
availibleBackgrounds.map(元素=>(
))
}
提前感谢,,
Chris。

您需要获取内容的偏移量,您可以通过在ScrollView中添加以下道具来实现:

onMomentumScrollEnd={event => setSelectedIndex(event.nativeEvent.contentOffset.x/width)}

setSelectedIndex是一个您应该创建的函数。

您需要获取内容的偏移量,您可以通过在ScrollView中添加以下道具来实现:

onMomentumScrollEnd={event => setSelectedIndex(event.nativeEvent.contentOffset.x/width)}

setSelectedIndex是一个您应该创建的函数。

要为这个问题添加更多的闭包,下面是我所做的

calculateCurrentIndex(位置){
这个.setState({
所选索引:{
当前:Math.ceil((位置/宽度).toFixed(2)),
} 
});
}
----------------------------------------
this.calculateCurrentIndex(event.nativeEvent.contentOffset.x)}
showshorizontalscrolindicator={false}
>
{
availibleBackgrounds.map((元素,索引)=>(
))
}

为了给这个问题增加一点结尾,我做了以下几点

calculateCurrentIndex(位置){
这个.setState({
所选索引:{
当前:Math.ceil((位置/宽度).toFixed(2)),
} 
});
}
----------------------------------------
this.calculateCurrentIndex(event.nativeEvent.contentOffset.x)}
showshorizontalscrolindicator={false}
>
{
availibleBackgrounds.map((元素,索引)=>(
))
}

一旦我开始工作,我会尝试一下。我正在尝试使用这个解决方案,我猜这将需要很多计算来确定,因为捕捉值没有给我,它是给我的末端阻力值,但有时它可以向后滚动捕捉或向前滚动捕捉,而你真的没有知道它走了哪条路,因为该值只是告诉您手指的提升位置。将“onScrollEndDrag”与“onMomentumScrollEnd”交换。让我知道它是否有效,以便我编辑我的答案(为后代;)刚要通过离子这里,我用onMomentumScrollEnd方法计算的结果要好得多,所以我建议改为onMomentumScrollEnd,而不是dragend一旦开始,我会尝试一下这个方法。我正在玩这个解决方案,我猜它需要很多计算的结果来确定,因为捕捉值没有提供给我,所以它是提供给我的末端阻力值,但有时它可以向后滚动捕捉或向前滚动捕捉,而你并不知道它的方向,因为该值只是告诉你手指的提升位置。将“onScrollEndDrag”替换为“onMomentumScrollEnd”。让我知道它是否有效,所以我将编辑我的答案(为未来几代人;)即将通过离子在这里它比我使用onMomentumScrollEnd方法进行的计算要好得多,因此我建议更改为onMomentumScrollEnd而不是dragEnd