如何通过更改 onPress 的不透明度来立即使我的可触摸不透明度对 onPress 的反应,以便用户可以轻松感觉到他们实际上按下了该按钮?



有时我的应用程序忙于其他事情,所以在相当长的一段时间内,它对绑定到我的TouchableOpacity组件的触摸事件没有响应。

activeOpacity属性会使按钮在出现这种重负载时延迟(1-2秒(更改其不透明度,这样用户就不会觉得自己真的按下了该按钮,并一直按下,直到看到反应为止。当然,这会给他们带来一些挫败感。

我的理解是,我认为这些改变不透明性的动画也需要JS和原生方之间的一些沟通。这就是为什么它会受到其他网桥通信的影响,并在一段时间内变得没有响应。

有没有什么方法可以克服React Native方面的这种情况,并使按钮立即改变其不透明性?或者只能通过为此目的创建一个新的本地按钮组件来处理它?

查看requestAnimationFramehttps://reactnative.dev/docs/timers.

"requestAnimationFrame(fn(与setTimeout(fn,0(不同——前者将在所有帧刷新后启动,而后者将尽快启动(在iPhone 5S上每秒超过1000倍(">

将onPress逻辑包装在requestAnimationFrame中,以便动画发生在逻辑之前。

相关内容

最新更新