我正在尝试将Google Admob广告显示在包含ListView的应用程序的主屏幕上。不幸的是,ListView占据了屏幕上的所有空间,然后广告出现在它的顶部。我已经尝试将ListView放在顶部,然后是AdView,我也尝试将AdView放在顶部,然后是ListView,但没有任何作用。
如果我将包围ListView的LinearLayout的大小设置为固定高度(例如,200px),那么它会限制大小并修复问题,但我不想这样做,因为Android设备的屏幕高度变化太大了。如果不设置固定大小,是否无法告诉ListView不占用所有空间?
我的代码如下,我将不胜感激任何帮助:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:layout_alignParentTop="true"
android:id="@+id/ad_layout"
android:orientation="vertical"
android:gravity="top"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<com.google.ads.AdView android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adUnitId="AD_UNIT_ID"
ads:adSize="BANNER"
ads:loadAdOnCreate="true"/>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_alignParentBottom="true"
android:layout_below="@+id/ad_layout"
android:orientation="vertical"
android:gravity="bottom"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView android:id="@id/android:list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<TextView android:id="@+id/android:empty"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/no_hosts"/>
</LinearLayout>
</RelativeLayout>
答案 0 :(得分:2)
你的两个LinearLayouts都有fill_parent
的高度。这意味着他们都将成为他们父母的全部身高。显然不是你想要的。试试这个:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<com.google.ads.AdView android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adUnitId="AD_UNIT_ID"
ads:adSize="BANNER"
ads:loadAdOnCreate="true"/>
<ListView android:id="@id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
<TextView android:id="@+id/android:empty"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/no_hosts"/>
</LinearLayout>
答案 1 :(得分:0)
你有一个相对布局。您需要将listview属性设置为layout_below =“yourAdLayout”或将父布局重命名为线性布局。方向标志不用于相对布局,仅用于线性。