我创建了一个应该触摸的自定义按钮组件。它在iOS上运行正常,但在Android上它根本没有显示出来。在试图找到这个问题的原因时。
我在世博会上创造了两个小吃以证明这个问题。第一个是包裹在Touchable元素中的元素,第二个是没有它的元素。
在第一个小吃中,它在iOS中按预期工作,但它不会在Android上显示。
在第二个零食中,两者都显示出预期效果,但并未点击
https://snack.expo.io/@shepherdjerred/button-with-touchable https://snack.expo.io/@shepherdjerred/button-without-touchable
答案 0 :(得分:0)
对于第一个零食,将style = {{flex:1}}添加到第一个视图组件。 Flex根据应用程序屏幕中可用的空间量调整组件。
return (
<TouchableWithoutFeedback onPressIn={this.handlePressIn.bind(this)}
onPressOut={this.handlePressOut.bind(this)}>
<View style={{flex: 1}}>
<View
style={[
this.stylesheet.buttonLayer,
this.stylesheet.buttonShadow
]}>
</View>
<View
style={[
this.stylesheet.buttonLayer,
this.stylesheet.buttonDepth
]}>
</View>
<View
style={[
this.stylesheet.buttonLayer,
this.stylesheet.buttonTop,
this.state.isPressed ? this.stylesheet.buttonTopPushed : this.stylesheet.buttonTopUnpushed
]}>
</View>
</View>
</TouchableWithoutFeedback>
);
}
对于第二个零食,React Native网站有两种创建可触摸按钮或组件的方法。
参考文献:
Facebook Inc.“身高和宽度”。反应原生。 https://facebook.github.io/react-native/docs/height-and-width.html (2018年4月2日访问)。
Facebook Inc.“处理工作”。反应原生。 https://facebook.github.io/react-native/docs/handling-touches.html (2018年4月2日访问)。
https://stackoverflow.com/a/44063868/8121551(4月2日访问, 2018)。