2010-08-09 10 views
1

J'ai quatre boutons disposés dans un TableLayout 2x2. Ces boutons ont chacun une image sur la gauche et du texte. Les boutons s'affichent correctement dans l'émulateur pour la version 1.5 et 2.2, mais lors du test avec la version 1.6, les deux boutons de la colonne de droite sont rognés de manière à manquer leur bord droit (le remplissage à droite du texte est manquant et le bouton se termine brusquement avec des coins carrés plutôt que arrondis). Il y a beaucoup de place pour que le TableLayout puisse se déployer pour s'adapter à toute la largeur des boutons. Cela arrive pour toutes les tailles d'écran.Boutons dans TableLayout recadrée sur Android 1.6 et 2.1 (mais pas sur 1.5 ou 2.2)

La mise en page ressemble à ceci et lui-même apparaît dans un RelativeLayout:

<TableLayout android:id="@+id/buttons" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:layout_alignParentTop="true" 
      android:paddingTop="10dp"> 
    <TableRow> 
    <Button android:id="@+id/button1" 
      style="@style/LaunchButton" 
      android:drawableLeft="@drawable/button1" 
      android:text="@string/button1"/> 
    <Button android:id="@+id/button2" 
      style="@style/LaunchButton" 
      android:drawableLeft="@drawable/button2" 
      android:text="@string/button2"/> 
    </TableRow> 
    <TableRow> 
    <Button android:id="@+id/button3" 
      style="@style/LaunchButton" 
      android:drawableLeft="@drawable/button3" 
      android:text="@string/button3"/> 
    <Button android:id="@+id/button4" 
      style="@style/LaunchButton" 
      android:drawableLeft="@drawable/button4" 
      android:text="@string/button4"/> 
    </TableRow> 
</TableLayout> 

Les boutons sont stylés comme suit:

<style name="LaunchButton"> 
    <item name="android:layout_width">wrap_content</item> 
    <item name="android:layout_height">wrap_content</item> 
    <item name="android:gravity">fill_horizontal</item> 
    <item name="android:textSize">24dp</item> 
    <item name="android:textStyle">bold</item> 
</style> 

Je suppose que cela est un bug spécifique de 1,6. Quelqu'un d'autre a-t-il rencontré ce problème? Des suggestions pour les solutions de rechange?

EDIT: J'ai eu l'occasion de l'essayer avec Android 2.1 (à la fois sur l'émulateur et un dispositif), et le problème qui s'y passe aussi. Donc 1,5 bon, 1,6 mauvais, 2,1 mauvais, 2,2 bon.

+0

Le moyen le plus au travail autour de maintenant est de spécifier une largeur de bouton fixe plutôt que de le mettre à « wrap_content » et en laissant la figure de mise en page dehors. –

Répondre

1

J'ai également rencontré le même problème sur 1.6 et 2.1 mais pas sur 1.5 ni 2.2.

J'utilise LineraLayout et de régler son poids à la place et d'ignorer le problème en utilisant TableLayout.

<LinearLayout 
    android:orientation="horizontal" android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <LinearLayout android:layout_width="fill_parent" 
     android:layout_weight="1" android:layout_height="wrap_content" 
     android:gravity="center"> 
     <ImageButton 
      android:layout_width="wrap_content" android:layout_height="wrap_content" /> 
    </LinearLayout> 
    <LinearLayout android:layout_width="fill_parent" 
     android:layout_weight="1" android:layout_height="wrap_content" 
     android:gravity="center"> 
     <ImageButton 
      android:layout_width="wrap_content" android:layout_height="wrap_content" /> 
    </LinearLayout> 
    <LinearLayout android:layout_width="fill_parent" 
     android:layout_weight="1" android:layout_height="wrap_content" 
     android:gravity="center"> 
     <ImageButton 
      android:layout_width="wrap_content" android:layout_height="wrap_content" /> 
    </LinearLayout> 

Questions connexes