gogui63 Posté(e) 10 mai 2012 Share Posté(e) 10 mai 2012 Bonjour à tous je viens chercher un peu d'aide car j'ai un problème avec mon application : Dans mon application , il y a 5 onglets ( onglet en bas de page : android:layout_alignParentBottom="true" ) Mais le problème c'est que dans un de mes onglet j'ai plusieurs listView qui "dépasse" sur mes différents onglets et je ne vois pas comment adapter ... Voici quelques Screens : Et mon code : Tab2 : package com.androiddev.tab;import android.app.Activity; import android.os.Bundle; import android.app.Activity; import java.util.ArrayList; import java.util.HashMap; import com.androiddev.tab.R; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.AdapterView.OnItemClickListener; public class Tab2 extends Activity { private ListView maListViewPerso2; private ListView maListViewPerso3; private ListView maListViewPerso4; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.onglet2); //Récupération de la listview créée dans le fichier main.xml maListViewPerso2 = (ListView) findViewById(R.id.listView2); //Création de la ArrayList qui nous permettra de remplire la listView ArrayList<HashMap<String, String>> listItem = new ArrayList<HashMap<String, String>>(); //On déclare la HashMap qui contiendra les informations pour un item HashMap<String, String> map; //Création d'une HashMap pour insérer les informations du premier item de notre listView map = new HashMap<String, String>(); //on insère un élément titre que l'on récupérera dans le textView titre créé dans le fichier affichageitem.xml map.put("titre", "1 - Nombres complexes >"); //enfin on ajoute cette hashMap dans la arrayList listItem.add(map); //On refait la manip plusieurs fois avec des données différentes pour former les items de notre ListView map = new HashMap<String, String>(); map.put("titre", "2 - Probabilités >"); listItem.add(map); map = new HashMap<String, String>(); map.put("titre", "3 - Etude de fonction >"); listItem.add(map); //Création d'un SimpleAdapter qui se chargera de mettre les items présent dans notre list (listItem) dans la vue affichageitem SimpleAdapter mSchedule = new SimpleAdapter (this.getBaseContext(), listItem, R.layout.afichageitem, new String[] {"titre" }, new int[] { R.id.titre}); //On attribut à notre listView l'adapter que l'on vient de créer maListViewPerso2.setAdapter(mSchedule); maListViewPerso3 = (ListView) findViewById(R.id.listView3); ArrayList<HashMap<String, String>> listItem1 = new ArrayList<HashMap<String, String>>(); HashMap<String, String> map1; map1 = new HashMap<String, String>(); map1.put("titre", "4 - Nombres complexes >"); listItem1.add(map1); map1 = new HashMap<String, String>(); map1.put("titre", "5 - Probalités >"); listItem1.add(map1); map1 = new HashMap<String, String>(); map1.put("titre", "6 - Etude de fonction >"); listItem.add(map); SimpleAdapter mSchedule1 = new SimpleAdapter (this.getBaseContext(), listItem, R.layout.afichageitem, new String[] {"titre" }, new int[] { R.id.titre}); maListViewPerso3.setAdapter(mSchedule1); maListViewPerso4 = (ListView) findViewById(R.id.listView4); ArrayList<HashMap<String, String>> listItem3 = new ArrayList<HashMap<String, String>>(); HashMap<String, String> map2; map2 = new HashMap<String, String>(); map2.put("titre", "7 - Nombres complexes >"); listItem1.add(map2); map2 = new HashMap<String, String>(); map2.put("titre", "8 - Probalités >"); listItem1.add(map1); map2 = new HashMap<String, String>(); map2.put("titre", "9 - Etude de fonction >"); listItem1.add(map); SimpleAdapter mSchedule11 = new SimpleAdapter (this.getBaseContext(), listItem, R.layout.afichageitem, new String[] {"titre" }, new int[] { R.id.titre}); maListViewPerso4.setAdapter(mSchedule11); } ; } onglet2 : <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/linearLayoutOnglet2" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="fill_parent" android:layout_height="40dp" android:gravity="center" android:text="ANNALES" android:textSize="35px" android:textStyle="bold" /> <TextView android:id="@+id/textView2" android:layout_width="fill_parent" android:layout_height="31dp" android:text="" /> <TextView android:id="@+id/textView3" android:layout_width="fill_parent" android:layout_height="40dp" android:paddingLeft="10px" android:text="01 - France Sept 2011 Electronique" android:textSize="25px" android:textStyle="bold" /> <ListView android:id="@+id/listView2" android:layout_width="fill_parent" android:layout_height="wrap_content" > <!-- Preview: listitem=@android:layout/simple_list_item_1 --> </ListView> <TextView android:id="@+id/textView4" android:layout_width="fill_parent" android:layout_height="10dp" android:text="" /> <TextView android:id="@+id/textView5" android:layout_width="fill_parent" android:layout_height="40dp" android:text="02 - France Sept 2011 Mécanique" android:textSize="25px" android:textStyle="bold" android:paddingLeft="10px" /> <ListView android:id="@+id/listView3" android:layout_width="fill_parent" android:layout_height="wrap_content" > <!-- Preview: listitem=@android:layout/simple_list_item_1 --> </ListView > <TextView android:id="@+id/textView6" android:layout_width="fill_parent" android:layout_height="10dp" android:text="" /> <TextView android:id="@+id/textView7" android:layout_width="fill_parent" android:layout_height="40dp" android:text="02 - France Sept 2011 Mécanique" android:textSize="25px" android:textStyle="bold" android:paddingLeft="10px" /> <ListView android:id="@+id/listView4" android:layout_width="fill_parent" android:layout_height="wrap_content" > <!-- Preview: listitem=@android:layout/simple_list_item_1 --> </ListView > </LinearLayout> Une autre question rapide ( cela m'evite d'ouvir un autre post ) je n'arrive pas à changer la couleur de mon texte dans la listView j'aimerai que mes Item ( Nombres complexe , proba , étude de fonction ... ) soient ecrites en noir . Merci d'avance et bonne journée ;) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 10 mai 2012 Share Posté(e) 10 mai 2012 Est-ce que tu as ce problème sur tous tes onglets ? Pourrais-tu nous montrer ton main.xml ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
gogui63 Posté(e) 10 mai 2012 Auteur Share Posté(e) 10 mai 2012 (modifié) Pour l'instant c'est le seul onglet aussi "long" J'ai trouvé une manière pour pas que mon contenu dépasse mais bon sa fait un peu bricolage : j'ai fait ça dans onglet2.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/linearLayoutOnglet2" android:layout_width="fill_parent" android:layout_height="410dp" android:orientation="vertical" Sinon voila mon main : <?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/back"> <RelativeLayout android:layout_height="fill_parent" android:layout_width="fill_parent"> <TabWidget android:id="@android:id/tabs" android:layout_alignParentBottom="true" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dp" /> </RelativeLayout> </TabHost> Une autre question , j'aimerai que mon onglet 2 soit Scrollable après mon textview "ANNALES" jusqu'à la fin voilà ce que j'ai fait : <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="410dp" android:layout_width="fill_parent"> <LinearLayout android:id="@+id/linearLayoutOnglet2" android:layout_width="fill_parent" android:layout_height="410dp" android:isScrollContainer="false" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="fill_parent" android:layout_height="40dp" android:gravity="center" android:text="ANNALES" android:textSize="35px" android:textStyle="bold" /> <TextView android:id="@+id/textView2" android:layout_width="fill_parent" android:layout_height="31dp" android:text="" /> <TextView android:id="@+id/textView3" android:layout_width="fill_parent" android:layout_height="40dp" android:paddingLeft="10px" android:text="01 - France Sept 2011 Electronique" android:textColor="#046380" android:textSize="25px" android:textStyle="bold" /> <ListView android:id="@+id/listView2" android:layout_width="wrap_content" android:layout_height="150dp" android:layout_weight="1.50" android.textColor="#046380" > <!-- Preview: listitem=@android:layout/simple_list_item_1 --> </ListView> <TextView android:id="@+id/textView4" android:layout_width="fill_parent" android:layout_height="10dp" android:text="" /> <TextView android:id="@+id/textView5" android:layout_width="fill_parent" android:layout_height="40dp" android:paddingLeft="10px" android:text="02 - France Sept 2011 Mécanique" android:textColor="#046380" android:textSize="25px" android:textStyle="bold" /> <ListView android:id="@+id/listView3" android:layout_width="wrap_content" android:layout_height="150dp" android:layout_weight="1.50" > <!-- Preview: listitem=@android:layout/simple_list_item_1 --> </ListView> <TextView android:id="@+id/textView6" android:layout_width="fill_parent" android:layout_height="10dp" android:text="" /> <TextView android:id="@+id/textView7" android:layout_width="fill_parent" android:layout_height="40dp" android:paddingLeft="10px" android:text="03 - France Sept 2011 Matériaux" android:textColor="#046380" android:textSize="25px" android:textStyle="bold" /> <ListView android:id="@+id/listView4" android:layout_width="wrap_content" android:layout_height="150dp" android:layout_weight="1.50" > <!-- Preview: listitem=@android:layout/simple_list_item_1 --> </ListView> </LinearLayout> </ScrollView> Mais le problème est que je voudrais que le ScrollView agisse APRÈS Le texview "ANNALES" car j'aimerai que mon TextView "ANNALES" restefixe en tête et donc ne puisse pas bouger. Merci Modifié 10 mai 2012 par gogui63 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 10 mai 2012 Share Posté(e) 10 mai 2012 (modifié) Dans ton main.xml, il faut que tu rajoutes un android:layout_above="@android:id/tabs" sur le FrameLayout, pour le forcer à s'aligner sur le haut des tabs <?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/back"> <RelativeLayout android:layout_height="fill_parent" android:layout_width="fill_parent"> <TabWidget android:id="@android:id/tabs" android:layout_alignParentBottom="true" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_above="@android:id/tabs" android:padding="5dp" /> </RelativeLayout> </TabHost> Pour le scrollView, tu le mets après ton TextView, et comme un ScrollView ne peut avoir qu'un seul élément, tu encapsules tous les éléments dans un (Linear)Layout Modifié 11 mai 2012 par chpil Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
gogui63 Posté(e) 10 mai 2012 Auteur Share Posté(e) 10 mai 2012 Merci chpil mais je ne comprends pas ce que tu veux dire par : Dans ton main.xml, il faut que tu rajoutes un android:layout_above="@android:id/tabs" sur le FrameLayout, pour le forcer à s'aligner sur le haut des tabs Je n'ai pas de Framelayout ... Par contre pour le scrollview lorsque je met mon textView avant j'ai cette erreur je ne comprends pas pourquoi : <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/textView1" android:layout_width="fill_parent" android:layout_height="40dp" android:gravity="center" android:text="ANNALES" android:textSize="35px" android:textStyle="bold" /> <ScrollView android:layout_height="410dp" android:layout_width="fill_parent"> <LinearLayout android:id="@+id/linearLayoutOnglet2" android:layout_width="fill_parent" android:layout_height="410dp" android:isScrollContainer="false" android:orientation="vertical" > <TextView android:id="@+id/textView2" android:layout_width="fill_parent" android:layout_height="31dp" android:text="" /> <TextView android:id="@+id/textView3" android:layout_width="fill_parent" android:layout_height="40dp" android:paddingLeft="10px" android:text="01 - France Sept 2011 Electronique" android:textColor="#046380" android:textSize="25px" android:textStyle="bold" /> <ListView android:id="@+id/listView2" android:layout_width="wrap_content" android:layout_height="150dp" android:layout_weight="1.50" android.textColor="#046380" > <!-- Preview: listitem=@android:layout/simple_list_item_1 --> </ListView> <TextView android:id="@+id/textView4" android:layout_width="fill_parent" android:layout_height="10dp" android:text="" /> <TextView android:id="@+id/textView5" android:layout_width="fill_parent" android:layout_height="40dp" android:paddingLeft="10px" android:text="02 - France Sept 2011 Mécanique" android:textColor="#046380" android:textSize="25px" android:textStyle="bold" /> <ListView android:id="@+id/listView3" android:layout_width="wrap_content" android:layout_height="150dp" android:layout_weight="1.50" > <!-- Preview: listitem=@android:layout/simple_list_item_1 --> </ListView> <TextView android:id="@+id/textView6" android:layout_width="fill_parent" android:layout_height="10dp" android:text="" /> <TextView android:id="@+id/textView7" android:layout_width="fill_parent" android:layout_height="40dp" android:paddingLeft="10px" android:text="03 - France Sept 2011 Matériaux" android:textColor="#046380" android:textSize="25px" android:textStyle="bold" /> <ListView android:id="@+id/listView4" android:layout_width="wrap_content" android:layout_height="150dp" android:layout_weight="1.50" > <!-- Preview: listitem=@android:layout/simple_list_item_1 --> </ListView> </LinearLayout> </ScrollView> J'ai des erreur tel que : error: Error parsing XML: not well-formed (invalid token) a la ligne 3 eme ligne Et "the markup in the document following the root element must be well-formed" lorsque je commence mon ScrollView Je n'arrive pas y résoudre .. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 11 mai 2012 Share Posté(e) 11 mai 2012 Si, tu as un FrameLayout dans ton main.xml. Regarde bien De toute façon, il te suffit de recopier le contenu que j'indiquais deux posts plus haut... Pour le layout onglet2, avec un ScrollView, je te disais de rajouter un LinearLayout pour les éléments que tu veux faire gérer par le ScrollView, pas de déplacer le LinearLayout existant... <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/linearLayoutOnglet2" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="fill_parent" android:layout_height="40dp" android:gravity="center" android:text="ANNALES" android:textSize="35px" android:textStyle="bold" /> <ScrollView android:id="@+id/scrollView1" android:layout_width="match_parent" android:layout_height="wrap_content" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/textView2" android:layout_width="fill_parent" android:layout_height="31dp" /> <TextView android:id="@+id/textView3" android:layout_width="fill_parent" android:layout_height="40dp" android:paddingLeft="10px" android:text="01 - France Sept 2011 Electronique" android:textSize="25px" android:textStyle="bold" /> <ListView android:id="@+id/listView2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" > </ListView> <TextView android:id="@+id/textView4" android:layout_width="fill_parent" android:layout_height="10dp" /> <TextView android:id="@+id/textView5" android:layout_width="fill_parent" android:layout_height="40dp" android:paddingLeft="10px" android:text="02 - France Sept 2011 Mécanique" android:textSize="25px" android:textStyle="bold" /> <ListView android:id="@+id/listView3" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" > </ListView> <TextView android:id="@+id/textView6" android:layout_width="fill_parent" android:layout_height="10dp" /> <TextView android:id="@+id/textView7" android:layout_width="fill_parent" android:layout_height="40dp" android:paddingLeft="10px" android:text="02 - France Sept 2011 Mécanique" android:textSize="25px" android:textStyle="bold" /> <ListView android:id="@+id/listView4" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" > </ListView> </LinearLayout> </ScrollView> </LinearLayout> 1 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
gogui63 Posté(e) 11 mai 2012 Auteur Share Posté(e) 11 mai 2012 Merci encore Chpil ! J'aimerai maintenant que les Item de ma ListView soient écrient en noir je n'arrive pas à changer al couleur , ce n'est pas comme dans un textView .. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 11 mai 2012 Share Posté(e) 11 mai 2012 Il te suffit de changer la définition du TextView qui est défini dans le layout utilisé pour chacun des items (affichageitem, à priori dans ton cas). Tu peux utiliser l'attribut android:textColor par ex. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
gogui63 Posté(e) 11 mai 2012 Auteur Share Posté(e) 11 mai 2012 J'avais déjà essayé mais j'ai un avertissement et du coup aucun changement de couleur lorsque je rajoute android.textColor="#010101" j'ai cet avertissement : attribute is missing the android namespace prefix Voila mon affichageItem : <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="65px" android:layout_gravity="center_vertical" android:paddingLeft="10px" android:layout_weight="10" > <TextView android:id="@+id/titre" android:layout_width="wrap_content" android:layout_height="fill_parent" android:textSize="30px" android:textStyle="bold" android.textColor="#010101" /> </LinearLayout> </LinearLayout> Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 11 mai 2012 Share Posté(e) 11 mai 2012 android:textColor (avec un ':'), pas android.textColor Et petite remarque en passant sur ton layout: - tu n'as pas besoin de mettre deux LinearLayout imbriqué, le second ne sert à rien et tu peux les regrouper - il n'est pas conseillé du tout d'utiliser des px (pixels) comme unités pour les dimensions, il est préférable d'utiliser des dp (device independant pixels), qui assurent d'avoir un rendu homogène quelque soit le device) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
gogui63 Posté(e) 11 mai 2012 Auteur Share Posté(e) 11 mai 2012 (modifié) Oui c'est ce que j'ai vue j'ai un Galaxy S2 et une tablette Xoom j'ai voulu essayer sur la tablette et tout était décalé ! Il faut absolument que je fasse quelque chose de plus propre c'est prévu , en tout cas merci beaucoup pour ton aide ! J'en profite au passage pour demander si c'est possible de faire un background composé de plusieurs images ? Je m'explique comme le montre les screens plus haut , mon background est composé d'un fond beige et le haut et le bas de bandes plus foncées sauf que quand je passe mon device en mode paysage , le titre des onglets (en haut) " COURS; ANNALES; THÈMES ..."dépassent des bandes idem pour mes onglets ... Je voudrait donc adapté mon background aux divers types d’écrans. Modifié 11 mai 2012 par gogui63 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
gogui63 Posté(e) 11 mai 2012 Auteur Share Posté(e) 11 mai 2012 (modifié) J'aimerai aussi si possible centrer mes item dans ma listview car il sont décalés vers le haut et ce n'est pas tres beau voir screen Mon affichageitem.xml : <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="40dp" > <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right" > <ImageView android:id="@+id/fleche" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" /> <TextView android:id="@+id/titre" android:layout_width="wrap_content" android:layout_height="fill_parent" android:textSize="15dp" android:textStyle="bold" android:textColor="#010101" android:layout_gravity="bottom" /> </RelativeLayout> </LinearLayout> Modifié 11 mai 2012 par gogui63 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 12 mai 2012 Share Posté(e) 12 mai 2012 Pour ton fond d'écran, ton problème vient du fait que Android essaye d'adapter l'image à la résolution de l'écran; du coup, une image qui "passait" bien en portrait va être étirée en largeur et écrasée en hauteur pour passer en paysage. Découper l'image en plusieurs ne changerait pas grand chose aux problème. Par contre, tu as le mécanisme des 9-patch, qui permet d'indiquer dans une image quelles sont les zonez déformables et quelles sont celles qu'il ne faut pas déformer; et Android s'appuira sur ces infos pour rendre l'image de la meilleure façon possible: quelques explications, et l'outil qui permet de gérer ces 9-patch Pour le centrage du texte de tes éléments, tu peux simplifier ton Layout - un RelativeLayout racine, avec une 'margin', pour jouer sur la marge autour des éléments constituants le Layout - un TextView et ImageView centré verticalement avec layout_centerVertival <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="5dp" > <ImageView android:id="@+id/fleche" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" /> <TextView android:id="@+id/titre" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:textColor="#010101" android:textSize="15dp" android:textStyle="bold" /> </RelativeLayout> 1 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.