如何解决如何使用Google作为提供程序,阻止React Native Maps的可拖动标记禁用iOS上MapView之外的触摸?
在具有Google提供程序的iOS上,React Native Maps的Draggable Marker禁用MapView外部的触摸,直到它在MapView内部注册触摸。在Android上,一切都很好,但是由于iOS上的某些原因,当我在地图上完成拖动标记并调用onDragEnd时,除非它们在TextInputs上,否则不会注册任何触摸事件。有时,TouchableOpacity会短暂闪烁,但永远不会调用它的onPress函数。但是,如果我在MapView内触摸,即使在标记附近也未触及,一切都会恢复到应有的状态。就像对本机地图进行反应一样,它不会发生某些结束事件,这会迫使焦点停留在地图上。
发生了一些棘手的事情,但我不认为这是罪魁祸首:
我将setState与onDragStart和onDragEnd结合使用来禁用ScrollView父组件,否则拖动将被Android上的滚动中断。
作为onDragEnd的一部分,我使用react-native-geocoding进行标注,然后更新区域状态。我已经注释掉了所有这些内容,但仍然无法正常工作。
计划是在状态更新后对新区域进行动画处理,但是直到解决该问题为止,这是没有意义的。这是我的代码,或者拿出所有已注释内容后剩下的代码:
<form>
<input type="number" max="180" placeholder="0 - 180">
<input type="Submit">
</form>
如果有任何方法可以欺骗MapView使其被按下(我尝试过引用MapView并调用mapView.current.props.onPress(),没有骰子),那么我可以接受。任何解决方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。