React Native:如何使 ImageBackground 中的 View 具有 100% 宽度但具有水平填充?
React Native: how to make View inside ImageBackground have 100% width but with horizontal padding?
我的 React Native 应用程序中有以下屏幕:
蓝色黑白背景是ImageBackground
,中间绿条是View
。代码是:
<ImageBackground
source={require('@images/login-background.jpg')}
style={{
flex: 1,
width: '100%',
resizeMode: 'cover',
justifyContent: 'center',
}}
>
<View style={{
width: '100%',
backgroundColor: 'green',
borderRadius: 15,
padding: 15
}}/>
</ImageBackground>
我希望在绿色 View
的左右边缘有 15px
的填充。如果 ImageBackground
是 View
,我会向其添加 15px
的填充,但是当它是 ImageBackground
时,结果是:
相反,如果我将 margin: 15px
添加到绿色 View
,我得到:
我应该如何处理它,使其看起来像这样?
在React-Native
中使用Dimensions
可以达到上述要求
import React from "react";
import { ImageBackground, View, Dimensions } from "react-native";
const screenWidth = Dimensions.get('window').width;
export default App = () => (
<ImageBackground
source={{ uri: "https://reactjs.org/logo-og.png" }}
style={{
flex: 1,
width: '100%',
resizeMode: 'cover',
justifyContent: 'center',
alignItems: 'center'
}}>
<View style={{
width: screenWidth - 30,
backgroundColor: 'green',
borderRadius: 15,
padding: 15
}} />
</ImageBackground>
);
希望对您有所帮助。有疑问欢迎留言。
试试这个:
<ImageBackground
source={image}
style={{
flex: 1,
width: '100%',
resizeMode: 'cover',
justifyContent: 'center',
}}
>
<View style={{paddingHorizontal: 15}}>
<View style={{
width: '100%',
backgroundColor: 'green',
borderRadius: 15,
padding: 15,
}}/>
</View>
</ImageBackground>
我的 React Native 应用程序中有以下屏幕:
蓝色黑白背景是ImageBackground
,中间绿条是View
。代码是:
<ImageBackground
source={require('@images/login-background.jpg')}
style={{
flex: 1,
width: '100%',
resizeMode: 'cover',
justifyContent: 'center',
}}
>
<View style={{
width: '100%',
backgroundColor: 'green',
borderRadius: 15,
padding: 15
}}/>
</ImageBackground>
我希望在绿色 View
的左右边缘有 15px
的填充。如果 ImageBackground
是 View
,我会向其添加 15px
的填充,但是当它是 ImageBackground
时,结果是:
相反,如果我将 margin: 15px
添加到绿色 View
,我得到:
我应该如何处理它,使其看起来像这样?
在React-Native
中使用Dimensions
可以达到上述要求
import React from "react";
import { ImageBackground, View, Dimensions } from "react-native";
const screenWidth = Dimensions.get('window').width;
export default App = () => (
<ImageBackground
source={{ uri: "https://reactjs.org/logo-og.png" }}
style={{
flex: 1,
width: '100%',
resizeMode: 'cover',
justifyContent: 'center',
alignItems: 'center'
}}>
<View style={{
width: screenWidth - 30,
backgroundColor: 'green',
borderRadius: 15,
padding: 15
}} />
</ImageBackground>
);
希望对您有所帮助。有疑问欢迎留言。
试试这个:
<ImageBackground
source={image}
style={{
flex: 1,
width: '100%',
resizeMode: 'cover',
justifyContent: 'center',
}}
>
<View style={{paddingHorizontal: 15}}>
<View style={{
width: '100%',
backgroundColor: 'green',
borderRadius: 15,
padding: 15,
}}/>
</View>
</ImageBackground>