React Native 中的 Absolute 和 Flexbox

Absolute and Flexbox in React Native

我想在屏幕底部放置一个占满所有宽度的白条。为此,我考虑使用 absolute 定位和继承的 flexbox 参数。

使用以下代码,它会呈现类似 this 的内容。

这是我的代码:

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 中都可用。所以感谢任何帮助,谢谢:)

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

只需在样式中添加 left: 0,top: 0,,是的,我累了。

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

第一步是添加

position: 'absolute',

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

left: 0,
right: 0,

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

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

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

这个解决方案对我有用:

tabBarOptions: {
      showIcon: true,
      showLabel: false,
      style: {
        backgroundColor: '#000',
        borderTopLeftRadius: 40,
        borderTopRightRadius: 40,
        position: 'relative',
        zIndex: 2,
        marginTop: -48
      }
  }