Android Admob没有足够的空间来展示广告

时间:2013-03-22 20:42:25

标签: android admob android-linearlayout space android-xml

使用admob site

中提供的代码

这是我的xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background_img"
    android:orientation="vertical"
    android:id="@+id/atozlayout"
     >
<GridView 
    android:id="@+id/gridView1"
    android:numColumns="auto_fit"
    android:gravity="center"
    android:columnWidth="55dp"
    android:stretchMode="columnWidth"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"    
    android:horizontalSpacing="10dp"
   android:verticalSpacing="10dp"  

    >

</GridView>
</LinearLayout>

但logcat显示 电子广告(4244):没有足够的空间来展示广告!想要:&lt; 480,75&gt;,具有:&lt; 800,0&gt;

似乎布局正在创建问题。请提出修复方法。非常感谢。

3 个答案:

答案 0 :(得分:6)

您的网格占据了 layout_height =“fill_parent”的所有空间。

您可以使用 layout_weight =“1” layout_height =“0dp”告诉网格在显示其他视图后占用所有剩余空间。

您还以编程方式添加AdView吗?您可以将它放在GridView下面的xml中。

例如:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background_img"
    android:orientation="vertical"
    android:id="@+id/atozlayout"
     >
<GridView 
    android:id="@+id/gridView1"
    android:numColumns="auto_fit"
    android:columnWidth="55dp"
    android:stretchMode="columnWidth"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:horizontalSpacing="10dp"
   android:verticalSpacing="10dp">

</GridView>
<com.google.ads.AdView android:id="@+id/adView"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     ads:adUnitId="MY_AD_UNIT_ID"
                     ads:adSize="BANNER"
                     ads:testDevices="TEST_EMULATOR, TEST_DEVICE_ID"
                     ads:loadAdOnCreate="true"/>

</LinearLayout>

确保将adUnitId替换为您的值。

答案 1 :(得分:2)

你的gridView很贪心。它吃掉屏幕上所有可用的空间。解决方案是将顶级布局切换为相对布局,并将android:layout_above“@ + id / adview”添加到GridView,将android:layout_alignParentBottom = true添加到广告视图。这将迫使gridview为广告留下空间。

答案 2 :(得分:0)

根据您关联的网页上的Android标签,您的布局中需要<com.google.ads.AdView>视图,而原始帖子中似乎缺少该视图。