我正在使用react-native + native-base并使用简单的布局 - 标题内容页脚。我在该部分中使用MapView,我希望Map填充内容区域。如果我在MapView的样式中指定宽度和高度,则地图显示正常。如果我将MapView的样式设置为flex:1则地图不会显示
这是我的代码..我想要的只是地图填写内容..
/**
* Sample React Native App
* https://github.com/facebook/react-native
* @flow
*/
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View,
MapView
} from 'react-native';
import { Container, Header, Title, Content, Footer, FooterTab, Button, Icon } from 'native-base';
class Project extends Component {
render() {
return (
<Container>
<Header>
<Title>TEST</Title>
</Header>
<Content>
<MapView
style={styles.map}
showsUserLocation={true}
/>
</Content>
<Footer>
<FooterTab>
<Button transparent>
<Icon name='ios-call' />
</Button>
</FooterTab>
</Footer>
</Container>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
welcome: {
fontSize: 20,
textAlign: 'center',
margin: 10,
},
instructions: {
textAlign: 'center',
color: '#333333',
marginBottom: 5,
},
map:{
flex:1
}
});
AppRegistry.registerComponent('Project', () => Project);
答案 0 :(得分:4)
尝试将<MapView>
包裹在<View>
而不是<Content>
中:
<View style={{flex: 1}}>
<MapView
style={styles.map}
showsUserLocation={true}/>
</View>
答案 1 :(得分:0)
Native Base Container是一个可滚动的视图,因此您无法在此容器中填充地图。如果检查地图元素,则高度为0.
一种可能的解决方案是检测窗口尺寸,然后计算代码中的宽度和高度。但要小心窗框调整大小或旋转。
import Dimensions from 'Dimensions';
Dimensions.get('window').height;
Dimensions.get('window').width;
答案 2 :(得分:0)
我有以下内容:
<Container>
<Header>
<Title> My Map</Title>
</Header>
<Map />
<Container>
答案 3 :(得分:0)
如果要在nativebase组件中添加地图,可以使用like:
<Container>
<Header>
<Title> Map </Title>
</Header>
<Content contentContainerStyle={{ flex: 1 }}>
<MapView style={{flex: 1}} />
</Content>
<Footer>
<FooterTab>
<Button transparent>
<Icon name='ios-call' />
</Button>
</FooterTab>
</Footer>
</Container>