ListView занимает все пространство при попытке использовать Admob Adview в Android - PullRequest
0 голосов
/ 16 июня 2011

Я пытаюсь отобразить рекламу 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>

Ответы [ 2 ]

2 голосов
/ 16 июня 2011

Оба ваших 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>
0 голосов
/ 16 июня 2011

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

...