IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

[RelativeLayout] Problème de positionnement


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    -
    Inscrit en
    Novembre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : -

    Informations forums :
    Inscription : Novembre 2007
    Messages : 64
    Par défaut [RelativeLayout] Problème de positionnement
    Bonsoir,

    J'essaye depuis quelques heures de positionner 4 boutons, avec 1 textView sous chaque bouton.
    J'ai réussi à faire ceci :



    Uploaded with ImageShack.us

    J'ai essayé de le centrer et de les placer en carré, mais le problème, c'est qu'il coupe le texte "Enseignement" en ne laissant que "Ens", et m'écrase son îcone. De plus, le bouton "Documentation" n'est pas centré. Comment faire ?

    Voici mon code :

    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
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout 
    	android:id="@+id/relativeLayout1" 
    	android:layout_width="fill_parent" 
    	android:layout_height="fill_parent"
    	android:background="@color/backgroundColor" 
    	xmlns:android="http://schemas.android.com/apk/res/android">
     
    	<include
            layout="@layout/barreprinc"
            android:id="@+id/barreprinc"
            android:layout_alignParentTop="true" 
    	/>
    	<LinearLayout 
    		android:layout_centerInParent="true"
    		android:gravity="center_horizontal"
    		android:layout_height="wrap_content"
    		android:layout_width="fill_parent">
    		<include
    			layout="@layout/accueil"
    		    android:id="@+id/milieu"
    		/>
    	</LinearLayout>
        <SlidingDrawer 
        	android:layout_width="fill_parent" 
        	android:id="@+id/slidingDrawer1" 
        	android:layout_height="250dip" 
        	android:handle="@+id/handle" 
        	android:content="@+id/content" 
        	android:layout_alignParentBottom="true"
        	>
            <Button 
            	android:layout_width="fill_parent" 
            	android:text="@string/txtButtonNameSliders" 
            	android:layout_height="wrap_content" 
            	android:id="@+id/handle"
            	android:background="@+drawable/buttonactu">
            </Button>
      		<LinearLayout 
    	  		android:id="@+id/content" 
    	  		android:layout_width="fill_parent" 
    	  		android:layout_height="fill_parent"
    	  		android:background="@color/backgroundActu"
      		/>
        </SlidingDrawer>
     
    </RelativeLayout>

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2005
    Messages : 103
    Par défaut
    Bonsoir,

    Pourquoi ne pas utiliser l'attribut "android:drawableTop" de Button qui permet de placer un drawable au dessus du texte ?

    Ensuite pour faire simple un LinearLayout en vertical puis dedans deux LinearLayout en horizontal contenant chacun 2 Button puis jouer sur gravity et layout_gravity des boutons pour les centrer et obtenir le carré.

  3. #3
    Membre confirmé
    Homme Profil pro
    -
    Inscrit en
    Novembre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : -

    Informations forums :
    Inscription : Novembre 2007
    Messages : 64
    Par défaut
    En fait, ce sont les images qui sont les boutons dans cette image, et drawableTop ne fonctionne pas avec. La seule solution serait de mettre des LinearLayout un peu partout en fait avec :
    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
    <linearlayout vertical>
       <LinearLayout horizontal>
          <LinearLayout vertical>
           bouton
           texte
          </LinearLayout>
          <LinearLayout vertical>
           bouton
           texte
           </LinearLayout>
        </LinearLayout>
        <LinearLayout horizontal>
          <LinearLayout vertical>
           bouton
           texte
          </LinearLayout>
          <LinearLayout vertical>
           bouton
           texte
           </LinearLayout>
        </LinearLayout>
    </LinearLayout>
    Un linearlayout dans un linearlayout encore dans un linearlayout, ça ne va pas alourdir l'interface ? Ou réduire les performances ?

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2005
    Messages : 103
    Par défaut
    Que les images soit les boutons ça ne pose pas de problème c'est ce que je disais, l'image de la loupe en drawableTop sur Button et "Recherche" en text, en plus ça alignera le texte sous les images (je prends pour exemple documentation).

    Ensuite il suffirait de faire (j'ai pas construit le xml correctement, c'est pour montrer)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <LinearLayout vertical>
        <LinearLayout horizontal>
            <Button drawableTop:loupe text:Recherche />
            <Button drawableTop:libre text:Documentation />
        </LinearLayout>
        <LinearLayout horizontal>
            <Button drawableTop:reunion text:Ens />
            <Button drawableTop:stylo text:Presse />
        </LinearLayout>
    </LinearLayout>
    Pour la question des LinearLayout en imbrication il suffit de ne pas faire un imbrication de profondeur supérieure à 10 (pas sûr du chiffre), c'est toujours mieux d'alléger mais là ça passe encore.

  5. #5
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Bonjour,


    En supplément de ce que t'as rajouter déjà Aerinder.

    Tu peux essayer de regarder du côté des TableLayout et TableRow
    http://developer.android.com/referen...bleLayout.html

  6. #6
    Membre confirmé
    Homme Profil pro
    -
    Inscrit en
    Novembre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : -

    Informations forums :
    Inscription : Novembre 2007
    Messages : 64
    Par défaut
    Ta solution est intéressante Aerinder, mais le problème est que cela fait apparaître le bouton gris par défaut d'android, le texte a disparu, et l'icône s'est décuplé, comme ceci :



    Uploaded with ImageShack.us

    Je n'ai modifié que recherche pour tester, le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <Button
    	android:id="@+id/ButtonRecherche" 
    	android:layout_margin="10dip"
    	android:drawableTop="@drawable/noun_project_95_loupe"
    	android:layout_width="70dip" 
    	android:layout_height="70dip" 
    	android:text="Recherche"
    />
    Je vais voir du côté de TableLayout Feanorin, ça a l'air intéressant, mais c'est vrai que ta solution peut être intéressante Aerinder pour éviter de créer un TextView à chaque fois.

  7. #7
    Membre expérimenté
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2005
    Messages : 103
    Par défaut
    Il faut jouer sur les propriétés pour améliorer l'affichage, pour le bouton, il faut mettre background à null.

    Pour infos j'ai déjà utilisé ce principe (1 LinearLayout horizontal + 2 LinearLayout vertical contenant chacun 3 Button).
    Rendu

    Uploaded with ImageShack.us

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de positionnement d'éléments dans la page
    Par Rocket666 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 18/02/2006, 11h59
  2. [CSS] Problème de positionnement de DIV
    Par Oberown dans le forum Mise en page CSS
    Réponses: 11
    Dernier message: 31/01/2006, 17h03
  3. [CSS]Problème de positionnement avec div
    Par Tueur_a_gage dans le forum Mise en page CSS
    Réponses: 11
    Dernier message: 25/10/2005, 23h48
  4. [Jtree][JScrollPane] problème de positionnement
    Par billynirvana dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 07/07/2005, 16h53
  5. Problème pour positionner une liste déroulante
    Par ouckileou dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 30/09/2004, 01h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo