applovin max 的 `maxadview` 在 xml 中设置了 `layout_gravity=”bottom”` 却未正确显示在屏幕底部,根本原因常是未主动调用 `loadad()` 方法——广告视图虽已布局,但未触发加载逻辑,导致渲染异常或仅部分可见。
在 Android 开发中,使用 AppLovin MAX 集成横幅广告(Banner Ad)时,仅在 XML 布局中声明 并设置 android:layout_gravity=”bottom” 是不充分的。该属性仅影响视图在父容器(如 CoordinatorLayout)中的定位规则,但若广告尚未完成初始化与加载流程,系统可能无法正确计算其尺寸、位置,甚至出现“只显示顶部四分之一”等裁剪现象——这正是您描述的典型表现。
✅ 正确集成步骤(关键:XML + Java/Kotlin 双重配合)
-
XML 中确保布局结构合理
您当前使用 CoordinatorLayout 作为根容器,并将 MaxAdView 置于 LinearLayout 外层,这是推荐做法(避免被 ViewPager 或 AppBarLayout 的嵌套测量干扰)。但需注意:- MaxAdView 必须拥有明确宽高(如 android:layout_width=”match_parent” + android:layout_height=”@dimen/banner_height”);
- android:layout_gravity=”bottom” 仅对 CoordinatorLayout、FrameLayout 等支持 gravity 的 ViewGroup 生效,您的写法符合规范;
- 无需为 MaxAdView 添加 android:id?❌ 错误!必须添加 ID 才能在代码中引用。
✅ 修正后的 XML 片段(关键补充 android:id):
<com.applovin.mediation.ads.MaxAdView android:id="@+id/max_banner_ad" maxads:adUnitId="deb0327b3f01cdb9" android:background="@color/banner_background_color" android:layout_width="match_parent" android:layout_height="@dimen/banner_height" android:layout_gravity="bottom" /> -
Java/Kotlin 中必须显式调用 loadAd()
这是绝大多数开发者遗漏的核心步骤。MaxAdView 不会自动加载广告——它只是一个容器,需手动触发加载生命周期。✅ 在 Activity 或 Fragment 的 onCreate()(Activity)或 onViewCreated()(Fragment)中添加: