Bonjour,

Je me suis mis aux joies de la programmation Android et ai publié ma première application. A présent, je veux ajouter un bandeau de publicité AdMobs dans l'application, ce qui n'est pas trop compliqué, car il y a de nombreux tutos.

Le problème est que le bandeau, situé en bas de l'écran, disparaît dès que le clavier apparaît (car il y a des EditView) et ne revient plus ! Le message d'avertissement du logcat dit que l'AdView n'a plus assez de place pour afficher la publicité, logique au moment où le clavier prend l'écran me direz-vous. Sauf qu'elle ne se raffiche plus du tout.

Le contenu de mon fichier layout/main.xml est le suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingTop="5dp"
    android:orientation="vertical" >
 
    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:src="@drawable/logo" />
 
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/vorname" />
 
    <EditText
        android:id="@+id/vorname"
        android:inputType="text"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="@string/vorname" />
 
    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/name" />
 
    <EditText
        android:id="@+id/name"
        android:inputType="text"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="@string/name" />
 
    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/maiden" />
 
    <EditText
        android:id="@+id/maiden"
        android:inputType="text"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="@string/maiden" />
 
    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/birthCity" />
 
 
    <EditText
        android:id="@+id/birthcity"
        android:inputType="text"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="@string/birthCity" />
 
    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingTop="2dp"
        android:gravity="center" >
 
        <Button
            android:id="@+id/buttonResult"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/btnResult" />
 
        <Button
            android:id="@+id/buttonReset"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/btnReset" />
 
    </LinearLayout>
 
    <TextView
        android:id="@+id/textViewRank"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:textStyle="bold"
        android:paddingTop="2dp"
        android:text="" />
 
    <TextView
        android:id="@+id/textViewResult"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text=""
        android:textSize="30sp"
        android:textStyle="bold" />
 
    <com.google.ads.AdView
        xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
        android:id="@+id/adview"
        android:gravity="bottom"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        ads:adUnitId="SECRET"
        ads:adSize="BANNER" />
    <!-- ads:loadAdOnCreate="true" -->
 
</LinearLayout>
Comme vous le voyez, l'interface est très minimaliste. Mais peut-être que je m'y prend mal, j'ai déjà eu une peine de chien à créer un emplacement libre pour placer la publicité. Sûrement qu'il me faudrait utiliser autre chose qu'un LinearLayout ou agencer les éléments différemment...

Bref, le code suivant se trouve dans le OnCreate() de l'application :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
// Look up the AdView as a resource and load a request.
	    AdView adView = (AdView)this.findViewById(R.id.adview);
	    AdRequest request = new AdRequest();
	    request.addTestDevice(AdRequest.TEST_EMULATOR);
	    adView.loadAd(new AdRequest());
Je tiens à préciser une dernière chose : j'ai débuté le projet en visant le SDK d'Android 2.1 et suivants. Ce que j'ai remarqué après coup, c'est qu'AdMobs requiert Android 3.2 et plus. Pour ne pas recommencer le projet et voulant garder les utilisateurs sur les version ultérieures - et ils sont nombreux -, j'ai changé la propriété suivante dans le fichier MANIFEST :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<uses-sdk android:minSdkVersion="7" />
La version 7 correspond à Android 2.1. Je doute que ça puisse poser problème étant donné que AdMobs le recommande sur son blog officiel, mais je tenais à prévenir, sait-on jamais.

Est-ce que quelqu'un peut m'aider ? Peut-être n'est-ce juste qu'un problème de placement.