React Native中的Absolute和Flexbox


95

我想在屏幕底部放一个白色的条,它将占据所有宽度。为此,我考虑过将absolute定位与继承的flexbox参数一起使用。

通过以下代码,它呈现出类似以下内容

这是我的代码:

var NavigationBar = React.createClass({
  render: function() {
    return(
    <View style={navigationBarStyles.navigationBar}>
      //Icon 1, Icon 2...
    </View>
    );
  }
});

var Main = React.createClass({
  render: function() {
    return(
      <View style={mainStyles.container}>
          <NavigationBar />
      </View>
    );
  }
});

var mainStyles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#456783',
  }
});

var navigationBarStyles = StyleSheet.create({
  navigationBar: {
    backgroundColor: '#FFFFFF',
    height: 30,
    position: 'absolute', 
    flexDirection: 'row',
    bottom: 0,
    justifyContent: 'space-between'
  },
});

我是CSS样式的新手,并不是所有的属性都可以在React-Native中使用。因此,任何帮助表示赞赏,谢谢:)

Answers:


157

好的,解决了我的问题,如果有人路过这里就是答案:

只是不得不补充left: 0,top: 0,对风格,是的,我累了。

position: 'absolute',
left:     0,
top:      0,

10
感谢您发布。似乎身高也一样-而不是height:100%top:0, bottom:0
Premasagar 2015年

4
但是如果您想将条形图放置在底部,并以全角显示,则应该添加left:0, right:0,而不应该添加top:0,如果设置top:0bottom:0,它将显示全屏。
Spark.Bao

1
我如何居中?例如,我想在组件的顶部显示一个微调器,并且希望微调器是绝对且居中的?
Murat Ozgul'7

1
要使用绝对定位的子对象垂直填充所有空间并添加top:0bottom:0替换“高度:100%”,请使用@Premasagar
Nick Pineda

1
强制添加lefttoprightbotton为0,运行完美。
jose920405 '16

64

第一步是添加

position: 'absolute',

然后,如果您想要元素全宽,请添加

left: 0,
right: 0,

然后,如果要将元素放在底部,请添加

bottom: 0,
// don't need set top: 0

如果要将元素放置在顶部,请替换bottom: 0top: 0


4

此解决方案为我工作:

tabBarOptions: {
      showIcon: true,
      showLabel: false,
      style: {
        backgroundColor: '#000',
        borderTopLeftRadius: 40,
        borderTopRightRadius: 40,
        position: 'relative',
        zIndex: 2,
        marginTop: -48
      }
  }
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.