Admob横幅不可见,但会响应点击

时间:2015-07-21 00:58:02

标签: android admob

我按照this官方教程在我的应用中设置了AdMob。

广告横幅广告不可见,但如果点击屏幕底部,测试广告将会打开并转到Google的AdMob页面,向我提供更多信息。

这是我主要活动的布局:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:id="@+id/fragmentDrawerLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <RelativeLayout
        android:id="@+id/fragmentContainer"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <com.google.android.gms.ads.AdView
            android:id="@+id/adView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_alignParentBottom="true"
            ads:adSize="SMART_BANNER"
            ads:adUnitId="@string/banner_ad_unit_id"/>

    </RelativeLayout>

    <ListView android:id="@+id/leftDrawer"
        android:layout_width="200dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:textStyle="bold"
        android:dividerHeight="0dp"/>

</android.support.v4.widget.DrawerLayout>

我知道广告会在某些情况下正确加载,但不是这个。例如,如果我将AdView作为DrawerLayout的直接子项,则会显示并响应点击,但它会直接居中在屏幕中间。这只是一个例子,因为我知道DrawerLayout应该只有两个直接的孩子:抽屉内容和主要内容。

有谁知道广告为何如此表现?我很感激任何建议。

谢谢!

修改:如果我在Fragment的{​​{1}}之间切换,广告有时会显示一小段时间。当它显示时,它在正确的位置并正确加载。我不知道为什么它似乎隐藏在我的Activity后面,但仍然响应点击事件。

1 个答案:

答案 0 :(得分:0)

正如@calvinfly指出的那样,问题在于布局的z排序。排列RelativeLayoutLinearLayout s的各种结构不起作用,但对于z排序情况,FrameLayout是理想的。

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <RelativeLayout
        android:id="@+id/fragmentContainer"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        ads:adSize="SMART_BANNER"
        ads:adUnitId="@string/banner_ad_unit_id"/>

</FrameLayout>