gpt4 book ai didi

android - 如何获取智能横幅的横幅尺寸?

转载 作者:IT老高 更新时间:2023-10-28 12:32:00 27 4
gpt4 key购买 nike

我正在尝试通过 firebase_admob 集成 admob进入我的 flutter 应用程序。

默认情况下,它似乎只是在当前 View 的顶部覆盖/堆叠横幅......而不考虑实际的小部件树及其约束。

我真的不知道为什么有人会设计这样的库.. 但没关系。也许是出于反欺诈的原因?!

为了避免用横幅覆盖实际内容,我想在我的内容中添加一个填充(填充高度 = 横幅高度)。

由于我使用的是“智能横幅”,因此该库会在运行时动态尝试为给定屏幕尺寸找到最佳横幅尺寸。

如何找出它想出的横幅尺寸??

最佳答案

这是我用来获取智能横幅高度的代码,根据 Google Specs .

  /// The initial size of the banner is calculated on the height of the
/// viewport. Due to ADMob banner refresh policies, in order to have
/// a consistent behaviour, we should keep track of the current AD size
/// and maintain it when the user rotates the screen, and update that
/// value at every banner successful.
/// For now, we will avoid this complexity and set the banner height to
/// the maximum height that a banner could get on this device, forcing
/// the use of the longest side as the base.
/// see https://developers.google.com/admob/android/banner#smart_banners
double _getSmartBannerHeight(BuildContext context) {
MediaQueryData mediaScreen = MediaQuery.of(context);
double dpHeight = mediaScreen.orientation == Orientation.portrait
? mediaScreen.size.height
: mediaScreen.size.width;
log.fine("Device height: $dpHeight");
if (dpHeight <= 400.0) {
return 32.0;
}
if (dpHeight > 720.0) {
return 90.0;
}
return 50.0;
}

如您所见,我始终使用设备的最长边,而不是计算与实际设备高度相关的横幅高度(换句话说,根据设备方向)。

这样做是因为当用户旋转设备时,官方的 flutter_admob 插件不会重新加载适当的横幅。考虑这种情况:- 纵向设备,横幅加载 50- 用户旋转设备:根据文档,高度应为 32,但不会重新加载横幅,使其高度为 50- 根据您的广告系列设置,会发生新的横幅加载,提供高度为 32 的横幅- 用户再次旋转设备等等

正如我在评论中所说,一个有效的解决方案是追踪最后一个横幅大小,并对横幅加载事件使用react,以便为用户提供无缝体验。

关于android - 如何获取智能横幅的横幅尺寸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50935918/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com