Dan*_*iel 12 reactjs react-native
我需要实现一个可以单击对象的接口,但是该对象的一个区域执行另一个操作,如下所示:
|-----------|
| | | -> clicking on this small area does an action
| ---|
| |
| |
| | -> clicking on this area does another action
| |
|-----------|
Run Code Online (Sandbox Code Playgroud)
我做了类似这种结构的实现:
<View> // Container
<Touchable onPress={do X}> // Large area
<Touchable onPress={do Y} style={{position: absolute, top: 0, right: 0}}> // Small area
</View>
Run Code Online (Sandbox Code Playgroud)
问题是小区域永远不会激活onPress道具.该事件总是在大面积上触发.
有人可以帮我弄这个吗?
谢谢!
我不确定您是否有任何样式要显示小容器,但如果没有宽度或高度,它将不会触发,因此请检查以确保您已设置宽度和高度:
smallContainer: {
width: 120, // set this
height:100, // set this
position:'absolute',
top:0,
right:0
}
Run Code Online (Sandbox Code Playgroud)
我已经让你的设置在这里工作了。代码也在下面。
https://rnplay.org/apps/StpOXg
'use strict';
var React = require('react-native');
var {
AppRegistry,
StyleSheet,
Text,
View,
TouchableHighlight
} = React;
var SampleApp = React.createClass({
render() {
return (
<View style={styles.container}>
<View style={{flexDirection:'row'}}>
<TouchableHighlight onPress={ () => alert('largeContainer') } style={styles.container1}>
<View><Text>Hello1</Text></View>
</TouchableHighlight>
<TouchableHighlight onPress={ () => alert('smallContainer') } style={styles.container2}>
<View><Text>Hello2</Text></View>
</TouchableHighlight>
</View>
</View>
);
}
});
var styles = StyleSheet.create({
container: {
flex: 1
},
container1: {
width:320,
height:300,
backgroundColor: 'red'
},
container2: {
width: 120,
height:100,
position:'absolute',
backgroundColor: 'green',
top:0,
right:0
}
});
AppRegistry.registerComponent('SampleApp', () => SampleApp);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2994 次 |
| 最近记录: |