0

ListViewで構成されるアプリのメイン画面にGoogleAdmobの広告を表示させようとしています。残念ながら、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>
4

2 に答える 2

2

両方のLinearLayoutの高さは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>
于 2011-06-16T08:03:29.617 に答える
0

相対的なレイアウトがあります。listviewプロパティをlayout_below="yourAdLayout"に設定するか、親レイアウトの名前を線形レイアウトに変更する必要があります。方向フラグは相対レイアウトでは使用されず、線形でのみ使用されます。

于 2011-06-16T08:00:05.343 に答える