我按照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
后面,但仍然响应点击事件。
答案 0 :(得分:0)
正如@calvinfly指出的那样,问题在于布局的z排序。排列RelativeLayout
和LinearLayout
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>