Когда я использую компонент expo FacebookAds для отображения BannerAd, он отлично работает для Android, но в iOS он добавляет дополнительное пространство вверху, и я вообще не могу решить эту проблему с помощью стиля.

Компонент для показа баннерной рекламы

import React from 'react';
import {FacebookAds} from 'expo';

const BannerAd = ({style, facebookAdsPlacementId}) => (
    <FacebookAds.BannerView 
        style={[{backgroundColor:'#888'},style]}
        placementId={facebookAdsPlacementId}
        type="standard"
        onPress= {() => console.log("Banner Ad Clicked")}
        onError= {err => console.log('Banner Ad Error', err)}
    />

);

export {BannerAd};

Я так это называю

<BannerAd style={{marginBottom:isIos?20:0}}

и вот как это выглядит

enter image description here

0
ChristKho 24 Окт 2018 в 04:26

2 ответа

Лучший ответ

Это было моим решением этой проблемы

 <BannerAd style={{ position:isIos?"absolute":"relative", bottom:isIos?20:0 }} 
                    facebookAdsPlacementId={isIos?this.props.facebookAdsIosBanner:
                    this.props.facebookAdsAndroidBanner }/>

Пожалуйста, дайте мне знать, если у вас есть лучшее решение

1
ChristKho 24 Окт 2018 в 04:28

Это можно использовать без дополнительного компонента относительного положения.

const styles = StyleSheet.create({
  bannerAd: {
    ...Platform.select<ViewStyle>({
      ios: {
        transform: [
          {
            translateY: -20,
          },
        ],
      },
    }),
  },
})
0
K.Adams 5 Апр 2019 в 17:01
52959883