我正在Activity
中整合 AdMob横幅广告广告。布局由GridView
和AdView
组成。
我想要的: -
当广告未显示时,即在开始时或广告下载或任何内容时,我希望GridView
拥有所有屏幕。但是,当要显示广告时,它应该覆盖下面所需的空格,但不要重叠任何内容。
我的布局: -
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="10"
android:id="@+id/ll_gridmain"
tools:context="mohits.app.picreddit.itemgrid">
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="9"
android:divider="@null"
android:numColumns="2"
android:background="#454545" >
</GridView>
<LinearLayout android:id="@+id/banner_view"
android:orientation="horizontal"
android:layout_height="0dp"
android:layout_width="match_parent"
android:layout_weight="1"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
android:gravity="bottom"
android:visibility="gone">
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="match_parent"
android:layout_height="match_parent"
ads:adSize="BANNER"
ads:adUnitId="@string/ad_banner"
android:visibility="gone">
</com.google.android.gms.ads.AdView>
</LinearLayout>
</LinearLayout>
我的活动: -
mAdView = (AdView) findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice("xxx")
.build();
mAdView.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
super.onAdLoaded();
mAdView.setVisibility(View.VISIBLE);
bannerView.setVisibility(View.VISIBLE);
}
});
我的目标: -
banner_view
布局始终显示,即使我将其设置为GONE
。这只应在展示广告时显示。
谢谢。
答案 0 :(得分:1)
问题是即使您移除横幅广告,GridView
的权重仍为9
且广告的weightSum
为10
,因此{ {1}}不会填写整个GridView
。
从布局中删除以下行应该有效:
LinearLayout
此外,设置android:weightSum="10"
的可见性是多余的。
设置AdView
的可见性也会影响他们的孩子。
您可以从ViewGroup
AdView
之后,设置android:visibility="gone"
的可见性应该足够了:
banner_view