2010-12-07 32 views
4

J'ai une activité dans mon application qui affiche simplement certains résultats d'une recherche. Ces données sont affichées à l'aide d'un ListView. Cela fonctionne bien. J'ai récemment essayé d'ajouter un Adview en dessous, mais il ne s'affiche tout simplement pas. Qui plus est, il pousse mon affichage de la liste vers le haut de l'écran de sorte qu'il ne peut occuper que les 20% supérieurs de l'écran - avec seulement vide en dessous.Impossible d'afficher à la fois une ListView et une AdView en même temps

Voici le XML d'affichage:

<?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> 

Qu'est-ce que je manque ici?

Répondre

14

Pour les démarreurs, utilisez android:orientation="vertical" sur votre LinearLayout, ou il sera par défaut un horizontal. Deuxièmement, essayez de définir la hauteur de LinearLayout à fill_parent et réglez votre ListView hauteur à 0px mais avec un layout_weight de 1. S'il ne se comporte toujours pas, j'imagine que AdView de l'admob se comporte mal et ignore la directive wrap_content - essayez de fixer sa hauteur à une taille spécifique dans dip (Admob devrait vous dire quelles sont les tailles qu'ils serviront là-bas , de toute façon).

+0

Brilliant - merci. Je n'arrive pas à croire que je suis allé aussi loin sans cliquer sur l'orientation ... doh! –

+1

J'ai perdu d'innombrables heures de ma vie au fait qu'il y ait un attribut par défaut pour 'orientation', et ce n'est pas celui que vous attendez. C'est un de ces paramètres que vous devriez vraiment spécifier explicitement, et le comportement par défaut de 'horizontal' est différent de 80% des fois où il est réellement utilisé (comme vertical), menant à toutes sortes de comportements inattendus. Je me fais toujours mordre par celui-ci de temps en temps quand j'oublie ça. –

+0

Merci Yoni. C'est exactement ce dont j'avais besoin. – wojciii

0

En outre, AdMob AdView ne s'affiche pas s'il ne parvient pas à récupérer une annonce. Vérifiez votre LogCat pour voir s'il y a des messages AdMobSDK là-dedans. Vous devrez peut-être ajouter une annonce maison à votre compte pour vous assurer que cela fonctionne.

Je voudrais également mettre un layout_weight = 1 sur l'AdView, peut-être aussi essayer layout_height = "wrap_content" sur le ListView.