在React Native中,至少有三种方式可以创建一个按钮:TouchableNativeFeedback,TouchableHighlight和TouchableOpacity.还有TouchableWithoutFeedback,文档清楚地说明您不应该使用,因为“所有响应新闻的元素都应该在触摸时有视觉反馈”.
> TouchableNativeFeedback只是Android,“用另一个RCTView实例替换View”
> TouchableHighlight“添加视图到视图层次结构”
> TouchableOpacity作品“不改变视图层次”
三者之间有什么其他重大差异吗?其中一个是goto组件?在什么情况下您应该使用TouchableHighlight超过TouchableOpacity?是否有任何性能影响?
我现在正在编写一个应用程序,并发现所有这三个在轻敲和动作之间有显着的延迟(在这种情况下是导航更改).有什么办法让它变得更厉害吗?
那么这是我通常如何决定使用什么:
>如果我正在构建Android版本,并且该组件足够大,本机反馈将与使用其他反馈明显不同,那么我使用TouchableNativeFeedback>如果我想控制组件的不透明度,或者我希望按钮在触摸时具有颜色,而我不想控制Touchable中某些元素的聚焦状态,那么我使用TouchableHighlight. (当您自己控制不透明度时,TouchableOpacity已经有一些奇怪的部分).>在所有其他情况下,我使用TouchableOpacity,因为它比TouchableHighlight更“裸”