Basil Satti
Basil Satti

Reputation: 700

Iphone 5 status bar is being covered React Native

My code works fine on Most of iPhones but on Iphone 5 the status bar has been covered by the view, I don't know how to margin the view in Iphone 5 only if i used margin top in the view, it looks weird in other iPhones

componentWillMount() {
        this.startHeaderHeight = 45
        this.marginTopHeader = 0
        this.iconMargin = 9
        if (Platform.OS == 'android') {
            this.startHeaderHeight = 30 + StatusBar.currentHeight
            this.marginTopHeader = 23 + this.marginTopHeader
            this.iconMargin = this.iconMargin
        }

    }
    render() {
        var width = Dimensions.get('window').width - 128;
        var height = Dimensions.get('window').height;
        return (
            <SafeAreaView  style={{
                height: this.startHeaderHeight, flexDirection: 'row',
                borderBottomColor: '#ddd', backgroundColor: '#3A3658', marginTop: this.marginTopHeader
            }} >

                <Icon
                    lightTheme
                    style={{ marginLeft: 8, marginRight: 5, marginTop: this.iconMargin, color: 'white' }} size={25} name="ios-menu" onPress={() => {
                        this.props.draw();
                    }}    />
            <View style={{position: 'absolute', right: 7}}>

                <Icon style={{ color: '#fff',marginTop: this.iconMargin ,padding:0,}} size={25} name="ios-cart" onPress={() => {
                        this.props.cart();
                    }}>
                   <Text style={{color:'red', fontWeight:'bold', fontSize:10}}>{this.props.cartItemCount}</Text>

                    </Icon>

</View>
            </SafeAreaView >

Upvotes: 2

Views: 212

Answers (1)

zhou Dai
zhou Dai

Reputation: 341

You can try to write like this.

<View style={{flex: 1, backgroundColor: 'white'}} >
        {/* header */}
        <View style={{paddingTop: system.ios.x ? 22 : 0}}>
          <View style={{
            height: Platform.select({ios: 64, android: 44}),
            backgroundColor: 'white',
            justifyContent: 'flex-end'
          }}>
          `enter code here`
          </View>
        </View>
</View>

Upvotes: 1

Related Questions