这是我的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;
似乎布局正在创建问题。请提出修复方法。非常感谢。
答案 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>
视图,而原始帖子中似乎缺少该视图。