我正在使用反应本机网络库,但我无法在网上完全身高
代码:
import React from 'react';
import {StyleSheet, View, Text, TouchableOpacity} from 'react-native';
class index extends React.Component {
render() {
return (
<View style={styles.container}>
<TouchableOpacity
style={{
backgroundColor: 'blue'
}}>
<Text style={{
color: 'green'
}}>Learning</Text>
</TouchableOpacity>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
width: '100%',
height: '100%',
margin: 0,
padding: 0,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: 'red'
}
})
export default index;
答案 0 :(得分:2)
flex: 1
和height: "100%"
在移动版本的react-native-web上工作正常,但不适用于Web。 Dimensions.get("window").height
-两种版本都很好。
答案 1 :(得分:0)
尝试以下
container: {
flex: 1
width: '100%',
height: '100%',
margin: 0,
padding: 0,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: 'red'
}
答案 2 :(得分:0)
我的问题是什么解决了位置属性
position:'absolute'
或position:'fixed'
相对不起作用position:'relative'
答案 3 :(得分:0)
React native无法理解视口单位。我们可以使用react-native提供的Platform
API。
如果您希望在使用react-native-web时同时为移动设备和网络提供全高,请尝试此方法。
<View style={styles.fullHeight}>
<Text>Hey there</Text>
</View>
CSS代码
const styles = StyleSheet.create({
fullHeight: {
height: Platform.OS === 'web' ? '100vh' : '100%'
}
})
答案 4 :(得分:0)
使用react-native-web
时,应使用视口填充片包装一棵根级树:
<View
style={{
height: Dimensions.get('window').height,
width: Dimensions.get('window').width,
}}
>
...
</View>
这将标准化跨平台的抽象单元,并允许所有子代正确响应测得的柔韧性(包括来自onLayout
事件的正确测量)
ProTip:您应将布局尺寸订阅Dimensions.addEventListener('change',...)
,以获取重定向。
答案 5 :(得分:0)
在我的App文件的容器中添加此样式对我来说很有效:
const styles = StyleSheet.create({
root: {
flex:1,
...Platform.select({web: {height: '100vh'}}),
},
});
App.js看起来像这样:
...
return(<View style={styles.root}>
...
答案 6 :(得分:0)
我正在为 Web 应用程序使用 React Native Web。它有左边的永久侧边栏,右边的内容是可滚动的。
我通过将 ScrollView 容器添加到 Drawer.Screen 中的每个组件来实现这一点。
然后我在 Drawer 中添加了一个 View 容器并添加了 Dimensions.get("window").height 作为它的高度。
使用 drawer navigation 创建的侧边栏导航。
希望这对某人有所帮助,我花了一段时间才正确设置。
添加实际界面截图
import {Dimensions, ScrollView, Text, View} from 'react-native';
import { createDrawerNavigator } from '@react-navigation/drawer';
// Get window height to make screens scrollable
const windowHeight = Dimensions.get('window').height;
function Feed() {
return (
<ScrollView>
<Text>Feed Screen</Text>
</ScrollView>
);
}
function Notifications() {
return (
<ScrollView>
<Text>Notifications Screen</Text>
</ScrollView>
);
}
const Drawer = createDrawerNavigator();
function MyDrawer() {
return (
<Drawer.Navigator initialRouteName="Feed" drawerType="permanent">
<Drawer.Screen
name="Feed"
component={Feed}
options={{ drawerLabel: 'Home' }}
/>
<Drawer.Screen
name="Notifications"
component={Notifications}
options={{ drawerLabel: 'Updates' }}
/>
</Drawer.Navigator>
);
}
<View style={{height: windowHeight}}>
<MyDrawer />
</View>
答案 7 :(得分:-1)
您可以为此使用视口单位。如果您希望他们使用本机,则需要:
npm install react-native-viewport-units --save
https://www.npmjs.com/package/react-native-viewport-units
您可以做到这一点。
var {vw, vh, vmin, vmax} = require('react-native-viewport-units');
<View style={{width:100*vw}}/>