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 :

TableRow : problèmes d'alignement


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 43
    Par défaut TableRow : problèmes d'alignement
    Bonjour,

    j'ai un petit problème avec un TableLayout. En fait, je créer un TableLayout (via une vue xml) auquel je rajoute un TableRow (toujours via xml). Je défini les paramètres tels que les marges, le centrage, etc. Ensuite, via mon code Java (dans mon activité), j'ai besoin de rajouter dynamiquement des TableRow. Les problème que j'ai, c'est que les TableRow que j'ajoute via mon activité ne sont pas alignés avec le premier TableRow ajouté via la vue xml. Pourtant, j'ai (a priori) utilisé les même paramètres.

    Je mets mon code si jamais ça peut aider:

    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
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:gravity="center" android:background="@drawable/background" android:layout_height="fill_parent" android:layout_width="fill_parent" android:layout_gravity="center">
        <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:text="High Scores" android:layout_gravity="center" android:gravity="center"></TextView>
        <ScrollView android:layout_width="match_parent" android:layout_height="150dp" android:layout_gravity="center">
            <TableLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:layout_gravity="center_horizontal" android:id="@+id/highScoreTable">
                <TableRow android:gravity="center" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_width="wrap_content">
                    <TextView android:layout_width="wrap_content" android:text="#" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_margin="5px"></TextView>
                    <TextView android:layout_width="wrap_content" android:text="Name" android:layout_height="wrap_content" android:layout_gravity="left|center_vertical" android:layout_margin="5px"></TextView>
                    <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="5px" android:layout_gravity="right|center_vertical" android:text="Score"></TextView>
                </TableRow>
            </TableLayout>
        </ScrollView>
        <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/exitHighScores" android:layout_gravity="center" android:background="@drawable/back" android:overScrollMode="always" android:visibility="visible"></ImageButton>
    </LinearLayout>
    Vue xml.

    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
    				TableRow tableRow = new TableRow(this.getApplicationContext());
    				TextView view1 = new TextView(this.getApplicationContext());
    				TextView view2 = new TextView(this.getApplicationContext());
    				TextView view3 = new TextView(this.getApplicationContext());
     
    				LayoutParams layoutParams = new LayoutParams();
    				layoutParams.gravity = Gravity.CENTER;
    				layoutParams.setMargins(5, 5, 5, 5);
     
    				view1.setLayoutParams(layoutParams);
    				view2.setLayoutParams(layoutParams);
    				view3.setLayoutParams(layoutParams);
     
    				this.highScoreTable.addView(tableRow);
    				tableRow.addView(view1);
    				tableRow.addView(view2);
    				tableRow.addView(view3);
     
    				tableRow.setGravity(Gravity.CENTER);
     
    				view1.setText("" + (k+1) + "");
    				view2.setText("" + scoreArray[k].getName() + "");
    				view3.setText("" + scoreArray[k].getScore() + "pts");
    La parie de mon activité où j'ajoute mes TableRow.

    Voilà, si quelqu'un trouve où j'ai merdé =).

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 322
    Par défaut
    Je pense que l'erreur vient de là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <TableRow android:gravity="center" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_width="wrap_content">
    Tu devrais plutot mettre ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <TableRow android:layout_height="wrap_content"  android:layout_width="fill_parent">
    Parce que avec ton code actuel, il essaye de centrer test TableRow dans ta TableLayout de façon indépendante. Voilà pourquoi elles ne sont pas alignées

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 43
    Par défaut
    Mmm, nan ça marche pas. Du coup j'ai essayé de réutiliser les paramètres des TextViews déjà créés comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    this.rank = (TextView) this.findViewById(R.id.rank);
    this.name = (TextView) this.findViewById(R.id.name);
    this.score = (TextView) this.findViewById(R.id.score);
     
    ...
     
    view1.setLayoutParams(rank.getLayoutParams());
    view2.setLayoutParams(name.getLayoutParams());
    view3.setLayoutParams(score.getLayoutParams());
    Où rank, name et score sont les TextView que j'ai créé dans ma vue xml. Seulement ça ne marche toujours pas =(.


Discussions similaires

  1. [CSS] Problème d'alignement des images
    Par Walabar dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 04/08/2006, 15h42
  2. débutant, problème d'alignement...
    Par celmakie dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/04/2006, 21h13
  3. problème d'alignement swing
    Par demonia dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 19/02/2006, 21h47
  4. Réponses: 1
    Dernier message: 22/12/2005, 11h23
  5. Problème d'alignement
    Par zorely dans le forum Mise en forme
    Réponses: 4
    Dernier message: 09/08/2005, 10h52

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