显示AdMob横幅时调整布局

时间:2016-07-02 07:56:19

标签: android layout admob

我正在Activity中整合 AdMob横幅广告广告。布局由GridViewAdView组成。

我想要的: -

当广告未显示时,即在开始时或广告下载或任何内容时,我希望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。这只应在展示广告时显示。

谢谢。

1 个答案:

答案 0 :(得分:1)

问题是即使您移除横幅广告,GridView的权重仍为9且广告的weightSum10,因此{ {1}}不会填写整个GridView

从布局中删除以下行应该有效:

LinearLayout

此外,设置android:weightSum="10" 的可见性是多余的。

设置AdView的可见性也会影响他们的孩子。

您可以从ViewGroup

中删除以下属性
AdView

之后,设置android:visibility="gone" 的可见性应该足够了:

banner_view