【发布时间】:2017-09-27 03:26:47
【问题描述】:
所以,我想创建一个类似于下面的布局。 [参考图片]
所以背景有一个全屏MapView(React Native Maps),上面有Markers,它需要是可点击的。
还有一个Scrollview,其全屏高度高于MapView,它最初有一些与其内容相关的上边距。
但是如果我以这种方式排列视图,问题是地图上的标记在初始状态下是不可点击的。
<View>
<MapView>
<Marker clickEventHere></Marker>
<Marker clickEventHere></Marker>
</MapView>
<ScrollView fullscreen>
<View marginTop></View>
</ScrollView>
<View>
我不确定它是否真的有可能解决这个问题。
解决方案尝试
yScrolled = event.nativeEvent.contentOffset.y;
yValue = this.state.yValue - yScrolled;
upwardScroll = yScrolled > 0;
if(upwardScroll && (yValue > 0)){
this.setState({
yValue: yValue
});
}
if(yScrolled === 0){
yScrolled = -10;
}
if(!upwardScroll && (yValue <= scrollViewMarginTop)){
yValue = this.state.yValue - yScrolled;
console.debug("UPDATE DOWNWARD");
this.setState({
yValue: yValue
});
}
【问题讨论】:
-
您是否尝试过将
pointerEvents: 'box-none'传递给ScrollView 的样式?文档中的更多信息:facebook.github.io/react-native/docs/view.html#pointerevents -
谢谢!这个我没试过。但这也会使 ScrollView 中的可见视图或子视图不可点击,我不希望这样。
-
来自我在之前评论中提供的链接:
'box-none': The View is never the target of touch events but it's subviews can be. -
好吧!在那种情况下会起作用,非常感谢。 :) 不幸的是,我不得不转向替代设计来跳过这个问题,但我们会再次回归。我会试试看。
-
我收到以下错误“pointerEvents 不是有效的样式属性”。由于我将其应用于 Scrollview 而您共享的链接具有它的视图。
标签: react-native react-native-android react-native-maps react-native-scrollview