我正在构建一个应用程序,该应用程序在屏幕上垂直排列有6个不同的标签。 通过单击选项卡将切换其内容。
我正在制作一个适合所有这些大内容的滚动视图。通过单击选项卡,屏幕将自动滚动到选项卡位置,因此可以显示内容,而无需用户自行向下滚动。
我的逻辑是单击该选项卡时,从此TouchableOpacity选项卡触发事件,该事件包含该选项卡在屏幕上的位置(将其称为pageY)。然后执行setState,使toggle = true,并进行setState回调,说明如果toggle = true,则滚动到pageY +屏幕的当前位置
<TouchableOpacity
onPress={evt => {
let { pageY } = evt.nativeEvent;
this.setState(
{
eToggle: !this.state.eToggle,
},
() => {
if (this.state.eToggle) {
this.scrollView.scrollTo({
y: this.scrollY + pageY,
animated: true,
});
} else {
this.scrollView.scrollTo({
y: 0,
animated: true,
});
}
}
);
}}>
<Text style={{ color: 'black', fontSize: 24 }}>E Tab</Text>
</TouchableOpacity>
我遇到了滚动无法正常工作的问题 单击选项卡时,屏幕不会滚动到该位置;它只向下滚动一点。
好像有什么东西阻碍了屏幕的滚动。
https://snack.expo.io/@rex_rau/scrollview
谢谢