ListView занимает все место при попытке использовать Admob Adview в Android

Я пытаюсь вывести рекламу Google Admob на главный экран приложения, состоящего из ListView. К сожалению, ListView занимает все место на экране, а затем поверх него появляется реклама. Я попытался поместить ListView вверху, а затем AdView, а также попытался разместить AdView вверху, а затем ListView, но ничего не работает.

Если я установлю размер LinearLayout, охватывающего ListView, на фиксированную высоту (например, 200 пикселей), то это ограничит размер и решит проблему, но я не хочу этого делать, потому что высота экрана устройств 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>

person paul88888    schedule 16.06.2011    source источник


Ответы (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>
person kabuko    schedule 16.06.2011

У вас относительный макет. вам нужно установить для свойства listview значение layout_below="yourAdLayout" или переименовать родительский макет в linear layout. флаг ориентации не используется в относительной компоновке, только в линейной.

person DArkO    schedule 16.06.2011