2013-01-31 5 views
5

Pracuję nad projektem Androida i mam problem z wyświetleniem reklamy u dołu ekranu pod widokiem listy bez powodowania nakładania się.Wyświetlanie ogłoszenia u dołu bez nakładania się na widok listy

W tej chwili, jeśli w widoku listy występuje duża liczba pozycji powodujących przewijanie, reklama ma być wyświetlana pod widokiem listy, ale w momencie, w którym reklama znajduje się w górnej części widoku listy, użytkownik nie może zobaczyć, co znajduje się u dołu widoku listy.

Poniżej znajduje się kopia mojego układu XML

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 
    android:layout_width="match_parent" 
    android:layout_height="fill_parent" 
    android:background="@color/black" 
    android:orientation="vertical" > 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 
    <TextView android:id="@+id/password_noRecords" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:layout_gravity="center" 
     android:text="There are currently\nno saved logins" 
     android:textSize="20dp" 
     android:textStyle="bold|italic"/> 
    <ListView 
     android:id="@android:id/list" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 
    </ListView> 
    <Button android:id="@+id/password_clearSearch" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/password_clear_search" 
     android:layout_alignParentBottom="true" 
     android:visibility="gone"/> 
    </LinearLayout> 
    <com.google.ads.AdView android:id="@+id/adView" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:layout_alignParentBottom="true" 
     android:gravity="center_horizontal" 
     ads:adUnitId="a14d6125d95c70b" 
     ads:adSize="BANNER" 
     ads:testDevices="TEST_EMULATOR, 015d1884222bfe01"/> 
</RelativeLayout> 

mam wiele różnych sposobów, mając to wszystko wewnątrz względnym układzie zamiast inny układ liniowy, nie mając align = true nadrzędnego dno, ale potem go znajduje się w górnej części widoku listy, pokrywając się z tym, co znajduje się u góry widoku listy.

Dziękujemy za pomoc.

Odpowiedz

11

Możesz to naprawić, używając tylko bazy LinearLayout (pozbyć się RelativeLayout) i użyć właściwości android:layout_weight na swojej ListView. Przykład:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 
    <TextView android:id="@+id/password_noRecords" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:layout_gravity="center" 
     android:text="There are currently\nno saved logins" 
     android:textSize="20dp" 
     android:textStyle="bold|italic"/> 
    <ListView 
     android:id="@android:id/list" 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" /> 
    <Button android:id="@+id/password_clearSearch" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/password_clear_search" 
     android:layout_alignParentBottom="true" 
     android:visibility="gone"/> 
    <com.google.ads.AdView android:id="@+id/adView" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:gravity="center_horizontal" 
     ads:adUnitId="a14d6125d95c70b" 
     ads:adSize="BANNER" 
     ads:testDevices="TEST_EMULATOR, 015d1884222bfe01"/> 
</LinearLayout> 

Należy zauważyć, że ListView ma android:layout_height="0dp" i android:layout_weight="1". To mówi, aby rozwinąć, aby wypełnić dowolne miejsce pozostałe po umieszczeniu innych elementów w LinearLayout.

+1

Dzięki za pomoc, to zostało mi podsłuch wieków – Boardy

+1

dzięki za pomoc :) – Gattsu

0

spróbuj dodać android:id="@+id/linear_layout" do LinearLayout a także dodać android:layout_below="@id/linear_layout" do <com.google.ads.AdView ... />