React Native'de Absolute ve Flexbox


95

Ekranın alt kısmına tüm genişliği kaplayacak beyaz bir çubuk koymak istiyorum. Bunu yapmak için, absolutekonumlandırmayı miras alınan flexboxparametrelerle kullanmayı düşündüm .

Aşağıdaki kod ile şöyle birşeyler kılan bu .

İşte kodum:

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'de stil oluşturma konusunda yeniyim ve tüm özellikler React-Native'de mevcut değil. Yani herhangi bir yardım takdir ediliyor, teşekkürler :)

Yanıtlar:


157

Tamam, sorunumu çözdüm, buradan geçen biri varsa cevap:

Hemen eklemek zorunda left: 0,ve top: 0,stilleri ve evet, ben yoruldum.

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

10
Bunu gönderdiğiniz için teşekkürler. Ve boy için de aynı şekilde görünüyor - height:100%yapmak yerine top:0, bottom:0.
Premasagar

4
ancak çubuğu en alta ve tam genişliğe yerleştirmek istiyorsanız eklemelisiniz left:0, right:0ve eklememelisiniz top:0, ayarlarsanız top:0ve bottom:0tam ekran görüntülenecektir.
Spark.Bao

1
Nasıl ortalayabilirim? Örneğin, bileşenimin üstünde bir eğirici göstermek istiyorum ve eğiricinin mutlak ve ortalanmış olmasını istiyorum.
Murat Özgül

1
Bir mutlak konumlu çocuk ekleyerek dikey tüm boşluğu doldurmak için top:0ve bottom:0yükseklik `` için yedek olarak çalıştı: 100%" @Premasagar götürmek
Nick Pineda

1
Jus eklenti left, top, rightve botton0 ve mükemmel çalışır.
jose920405

64

İlk adım eklemek olacaktır

position: 'absolute',

öğenin tam genişliğini istiyorsanız, şunu ekleyin:

left: 0,
right: 0,

ardından, öğeyi en alta yerleştirmek istiyorsanız, şunu ekleyin:

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

Eğer üstündeki elemanı konumlandırmak istiyorsanız, yerine bottom: 0göretop: 0


4

Bu çözüm benim için çalıştı:

tabBarOptions: {
      showIcon: true,
      showLabel: false,
      style: {
        backgroundColor: '#000',
        borderTopLeftRadius: 40,
        borderTopRightRadius: 40,
        position: 'relative',
        zIndex: 2,
        marginTop: -48
      }
  }
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.