React Native의 Absolute 및 Flexbox


96

화면 하단에 모든 너비를 차지하는 흰색 막대를 배치하고 싶습니다. 이를 위해 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에서 모든 속성을 사용할 수있는 것은 아닙니다. 그래서 어떤 도움을 주시면 감사하겠습니다 :)

답변:


160

좋아, 여기를 지나가는 사람이 있다면 내 문제를 해결했습니다.

스타일과 스타일 을 추가해야 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 2016

1
모든 공간을 수직으로 채우는 절대 위치에있는 자식을 추가 top:0하고 bottom:0``height : 100 % "를 대신하여 작업 한 경우 @Premasagar
Nick Pineda

1
Jus lefttop,, rightbotton0을 추가 하고 완벽하게 작동합니다.
jose920405

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
      }
  }
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.