2010-12-07 6 views
4

Ich habe eine Aktivität in meiner App, die einfach einige Ergebnisse aus einer Suche anzeigt. Diese Daten werden mithilfe einer ListView angezeigt. Das funktioniert gut. Ich habe kürzlich versucht, ein Adview darunter hinzuzufügen, aber es wird einfach nicht angezeigt. Außerdem schiebt es meine Listenansicht an den oberen Bildschirmrand, so dass sie nur die oberen 20% des Bildschirms einnehmen kann - nur leer darunter. HierScheint nicht gleichzeitig ListView und AdView anzuzeigen

ist das Display XML:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:myapp="http://schemas.android.com/apk/res/uk.co.redfruit.android.whogotwhat" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:paddingTop="10dp" 
    android:paddingBottom="10dp" 
    > 
    <ListView 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:id="@+id/scanResults" 
     android:paddingLeft="5dp" 
     android:paddingRight="5dp" 
     /> 
    <com.admob.android.ads.AdView 
     android:id="@+id/ad" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     myapp:backgroundColor="#000000" 
     myapp:primaryTextColor="#FFFFFF" 
     myapp:secondaryTextColor="#CCCCCC" 
     /> 
</LinearLayout> 

Was ich hier fehlt?

Antwort

14

Für den Anfang verwenden Sie android:orientation="vertical" auf Ihrem LinearLayout, oder es wird standardmäßig ein horizontal eins sein. Versuchen Sie zweitens, die LinearLayout Höhe auf fill_parent einzustellen und Ihre ListView Höhe auf 0px, aber mit einem layout_weight von 1 einzustellen. Wenn es sich immer noch nicht benimmt, würde ich annehmen, dass sich AdView von adamob schlecht benimmt und die wrap_content Richtlinie ignoriert - versuchen Sie, seine Höhe auf eine bestimmte Größe in dip zu fixieren (Admob sollte Ihnen sagen, welche Größen sie dort servieren werden) , Sowieso).

+0

Brilliant - danke. Ich kann nicht glauben, dass ich soweit gekommen bin, ohne zu klicken, wofür die Orientierung war ... doh! –

+1

Ich habe unzählige Stunden meines Lebens mit der Tatsache verloren, dass es ein Standardattribut für "Orientierung" gibt, und es ist nicht das, was man erwarten würde. Es ist einer dieser Parameter, den Sie wirklich explizit angeben müssen, und das Standardverhalten von 'horizontal' ist 80% der Zeiten, die es tatsächlich verwendet wird (als vertikal), nicht eingehalten, was zu allen möglichen unerwarteten Verhaltensweisen führt. Ich werde immer wieder von diesem gebissen, wenn ich das vergesse. –

+0

Danke Yoni. Genau das habe ich gebraucht. – wojciii

0

Auch das Admob AdView wird nicht angezeigt, wenn es eine Anzeige nicht abrufen konnte. Überprüfen Sie in Ihrem LogCat, ob AdMobSDK-Nachrichten vorhanden sind. Möglicherweise müssen Sie Ihrem Konto eine Hausanzeige hinzufügen, um sicherzustellen, dass sie funktioniert.

Ich würde auch eine layout_weight = 1 auf die AdView, vielleicht auch versuchen, layout_height = "wrap_content" auf der ListView.