当在Android上使用AdMob时,有时会遇到一个问题,即当广告加载完成之前,横幅广告的空间没有预留,导致布局错乱。以下是解决这个问题的一种方法的示例代码:
private AdView mAdView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 找到 FrameLayout
FrameLayout adContainer = findViewById(R.id.adContainer);
// 创建 AdView
mAdView = new AdView(this);
mAdView.setAdSize(AdSize.BANNER);
mAdView.setAdUnitId("YOUR_AD_UNIT_ID");
// 在 FrameLayout 中添加 AdView
adContainer.addView(mAdView);
// 加载广告
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
}
@Override
protected void onDestroy() {
super.onDestroy();
// 释放 AdView 资源
if (mAdView != null) {
mAdView.destroy();
}
}
这个示例代码将在布局中添加一个空的 FrameLayout,然后在代码中动态创建 AdView,并将其添加到 FrameLayout 中。在加载广告之前,横幅广告的空间已经预留,避免了布局错乱的问题。
请注意,你需要将 "YOUR_AD_UNIT_ID" 替换为你自己的 AdMob 广告单元 ID。另外,确保在 AndroidManifest.xml 文件中添加了适当的权限和元数据。
希望这个示例代码能帮助你解决在Android上使用AdMob时,加载前未预留横幅空间的问题。