Как сделать так, чтобы реклама показывалась внизу экрана без перекрытия

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


person Emma Assin    schedule 21.03.2011    source источник


Ответы (1)


Вы можете сделать это, используя 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 не будет перекрываться объявлением.

person Cristian    schedule 21.03.2011
comment
большое спасибо Кристиан, это сработало именно так, как я хотел :) - person Emma Assin; 21.03.2011