在 React Native 中使用绝对值和 Flexbox 创建布局
Create Layout with absolute Values and Flexbox in React Native
我是一名正在尝试学习 React Native 的 iOS 开发人员。目前我正在尝试弄清楚如何使用 FlexBox 创建这样的布局:
我不确定如何在 React Native 中使用 with 的相对值。当我尝试实现它时,我得到了这个:
如你所见,中间的视图在中间切割了左右两侧的视图。有任何想法吗?这是我的代码:
<View style={{flexDirection: 'row', flex: 1}}>
<SafeAreaView>
<TouchableOpacity style={{left: 20, top: 24, height: 44, width: 44}}>
<Image
source={require('../../assets/images/backButton.png')}
style={{height: '100%', width: '100%'}}
/>
</TouchableOpacity>
</SafeAreaView>
<View style={{flex: 2, backgroundColor: '#FF2F2F'}}></View>
<SafeAreaView>
<Text
style={{
right: 20,
top: 24,
height: 44,
fontSize: 14,
}}>
1 / 6
</Text>
</SafeAreaView>
</View>
这里的问题是您错误地订购了 类(View、SafeView 等),这导致布局重叠并阻止您获得所需的结果。
检查我在下面提出的解决方案:
return (
<SafeAreaView style={{flex: 1}}>
<View style={{flexDirection: 'row', flex: 1, height: "100%"}}>
<TouchableOpacity style={{height: 44, width: 44, margin: 10}}>
<Image
source={require('../../assets/images/backButton.png')}
style={{height: '100%', width: '100%'}}
/>
</TouchableOpacity>
<View style={{flex: 1, backgroundColor: '#FF2F2F'}}></View>
<Text
style={{
padding: 14,
fontSize: 14,
}}>
1 / 6
</Text>
</View>
</SafeAreaView>
);
Running example for the solution on expo Snack
随时探索和编辑它!
我是一名正在尝试学习 React Native 的 iOS 开发人员。目前我正在尝试弄清楚如何使用 FlexBox 创建这样的布局:
我不确定如何在 React Native 中使用 with 的相对值。当我尝试实现它时,我得到了这个:
如你所见,中间的视图在中间切割了左右两侧的视图。有任何想法吗?这是我的代码:
<View style={{flexDirection: 'row', flex: 1}}>
<SafeAreaView>
<TouchableOpacity style={{left: 20, top: 24, height: 44, width: 44}}>
<Image
source={require('../../assets/images/backButton.png')}
style={{height: '100%', width: '100%'}}
/>
</TouchableOpacity>
</SafeAreaView>
<View style={{flex: 2, backgroundColor: '#FF2F2F'}}></View>
<SafeAreaView>
<Text
style={{
right: 20,
top: 24,
height: 44,
fontSize: 14,
}}>
1 / 6
</Text>
</SafeAreaView>
</View>
这里的问题是您错误地订购了 类(View、SafeView 等),这导致布局重叠并阻止您获得所需的结果。
检查我在下面提出的解决方案:
return (
<SafeAreaView style={{flex: 1}}>
<View style={{flexDirection: 'row', flex: 1, height: "100%"}}>
<TouchableOpacity style={{height: 44, width: 44, margin: 10}}>
<Image
source={require('../../assets/images/backButton.png')}
style={{height: '100%', width: '100%'}}
/>
</TouchableOpacity>
<View style={{flex: 1, backgroundColor: '#FF2F2F'}}></View>
<Text
style={{
padding: 14,
fontSize: 14,
}}>
1 / 6
</Text>
</View>
</SafeAreaView>
);
Running example for the solution on expo Snack
随时探索和编辑它!