React Native如何禁用Draggable组件被点击时的透明度变化?
问题描述
我如何在React Native中禁用Draggable组件被点击时的透明度变化?文档中仅给出了相关说明,但按照说明操作后并没有生效
此外我在谷歌上检索也没有找到相关解决方法
以下是我点击Draggable组件时的实际效果表现:

但我希望点击Draggable组件时,它的颜色与透明度都保持完全一致,请问有没有可行的解决方案?
可行解决方案
针对社区最常用的react-native-draggable组件库,可按以下步骤排查配置:
- 基础配置:直接设置
activeOpacity={1},该属性对应组件内置按压态的透明度,默认值小于1,是触发点击时透明变化的核心原因。如果存在拖拽时的透明度变化,同时设置dragOpacity={1}。 - 配置失效排查:
- 检查组件外层是否额外包裹了
TouchableOpacity/Pressable组件,若有则将外层组件的按压透明度属性也同步设为1 - 部分旧版本的
react-native-draggable存在activeOpacity失效的已知bug,可升级组件库到最新稳定版,或通过自定义渲染容器的方式完全接管组件UI的渲染逻辑
- 检查组件外层是否额外包裹了
- 若使用的是
react-native-gesture-handler生态下的Draggable实现,需要同步调整手势绑定的触控组件的按压反馈参数,关闭默认的透明反馈效果
旧版本bug的临时修复示例:
<Draggable // 自定义渲染容器,完全接管UI渲染,绕开默认的按压透明逻辑 renderDrawable={() => ( <View style={{ width: 80, height: 80, backgroundColor: 'blue' }} /> )} > </Draggable>
内容的提问来源于stack exchange,提问作者Kyoko Sasagava
相关产品推荐
相关产品推荐

