Как сделать так, чтобы объявление показывалось внизу экрана без наложения - PullRequest
10 голосов
/ 21 марта 2011

У меня есть рекламный баннер AdMob, который я хотел бы разместить в нижней части экрана, а остальное содержание изменило размеры, чтобы заполнить доступное пространство при загрузке рекламы. Я вижу, что именно то, что я хочу, произойдеткогда я помещаю объявление в верхнюю часть линейного макета, а затем высоту моего контента устанавливаю равным fill_parent.Возможно ли достичь в обратном направлении?Когда я размещаю свое объявление под своим контентом с высотой fill_parent, оно не отображается, так как недостаточно места.У меня есть решение с относительным макетом и полем внизу, чтобы сэкономить место для рекламы, но мне не нравится черное пространство, которое присутствует до тех пор, пока реклама не загрузится (если она вообще будет).Есть идеи?

1 Ответ

31 голосов
/ 21 марта 2011

Вы можете сделать это, используя RelativeLayout без всяких хакерских мелочей:

<?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">
    <bla.bla.AdView
            android:id="@+id/ad"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:background="#FF0000"/>
    <ListView
            android:id="@android:id/list"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_above="@id/ad"/>
</RelativeLayout>

Если по какой-то странной причине объявление не загружается, ListView займет все доступное место.С другой стороны, если объявление действительно загружается, объявление ListView не будет перекрываться.

...