Est-ce à cause de l'événement OnElementChanged?
Puis-je charger les annonces au démarrage de l'application?
protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.View> e) { base.OnElementChanged(e); if (e.OldElement == null) { var adView = new AdView(Context); switch ((Element as AdBanner).Size) { case AdBanner.Sizes.Standardbanner: adView.AdSize = AdSize.Banner; break; ... } adView.AdUnitId = "ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx"; var requestbuilder = new AdRequest.Builder(); adView.LoadAd(requestbuilder.Build()); SetNativeControl(adView); } }
3 Réponses :
Pour créer un contrôle natif dans OnElementChanged
dans un renderer , test sur e.NewElement! = null
et Control == null
:
base.OnElementChanged(e); if (e.NewElement != null && Control == null) { _adView = CreateNativeControl(...); SetNativeControl(_adView); }
Lorsque l'application appelle la méthode OnElementChanged au début du programme, elle ne diffuse aucune annonce. Seulement lorsqu'il a appelé pour la deuxième fois.
J'ai pu résoudre le même problème en définissant VerticalOptions = "FillAndExpand" et HorizontalOptions = "FillAndExpand"