2010-11-09 5 views
0

J'ai un comportement de ma disposition. Je donne deux d'entre eux, très semblables les uns aux autres. Une seule différence est l'attribut width des textviews.Problèmes de mise en page. Android

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="bottom"> 
    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:isScrollContainer="true" 
     android:gravity="center" 
     android:background="@color/black"> 
     <LinearLayout 
      android:id="@+id/tabs" 
      android:layout_width="0dp" 
      android:layout_height="fill_parent" 
      android:orientation="horizontal" 
      android:background="@color/black" 
      android:layout_weight="1">      
      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Einstellungen" 
       android:drawableTop="@drawable/selector_settings" 
       android:id="@+id/main_menu_button_connection" 
       android:gravity="center" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textSize="10px"> 
      </TextView>  
      ... 
      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Suche" 
       android:drawableTop="@drawable/selector_search" 
       android:id="@+id/main_menu_button_connection" 
       android:gravity="center" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textSize="10px"> 
      </TextView> 
     </LinearLayout>    
    </LinearLayout> 
</LinearLayout> 

Si layout_width est réglé pour envelopper le contenu, je suis suivant les résultats de la mise en page: alt text

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="bottom"> 
    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:isScrollContainer="true" 
     android:gravity="center" 
     android:background="@color/black"> 
     <LinearLayout 
      android:id="@+id/tabs" 
      android:layout_width="0dp" 
      android:layout_height="fill_parent" 
      android:orientation="horizontal" 
      android:background="@color/black" 
      android:layout_weight="1">      
      <TextView 
       android:layout_width="70dp" 
       android:layout_height="wrap_content" 
       android:text="Einstellungen" 
       android:drawableTop="@drawable/selector_settings" 
       android:id="@+id/main_menu_button_connection" 
       android:gravity="center" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textSize="10px"> 
      </TextView>  
      ... 
      <TextView 
       android:layout_width="70dp" 
       android:layout_height="wrap_content" 
       android:text="Suche" 
       android:drawableTop="@drawable/selector_search" 
       android:id="@+id/main_menu_button_connection" 
       android:gravity="center" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textSize="10px"> 
      </TextView> 
     </LinearLayout>    
    </LinearLayout> 
</LinearLayout> 

Si layout_width est réglé sur une valeur au lieu (ici 70dp), ma mise en page ressemble, je veux il Souhaitée:

alt text

Quelqu'un peut-il me expliquer, pourquoi ?!

Y a-t-il une solution qui évite de définir une largeur constante et qui a toujours le même résultat que sur la deuxième image?!

Nous vous remercions à l'avance

Répondre

0

Vous voulez probablement donner à chaque TextView un poids de mise en page égale, comme android:layout_weight="1" et une largeur de fill_parent. En outre, ne donnez pas de poids pour la disposition linéaire des onglets. Aussi, bien que je ne sache pas vraiment ce qui se passe plus tard dans le fichier de mise en page, avoir trois LinearLayouts imbriqués semble être un gaspillage. Peut-être que vous pouvez vous débarrasser de l'un d'entre eux?

+0

oui, vous avez raison je n'ai pas donné toute la mise en page, j'avais avant. J'avais deux boutons sur les côtés gauche et droit. C'est pourquoi l'onglet LL a le poids 1. Je ne peux pas expliquer pourquoi, en utilisant wrap_content le cinquième élément semble si étrange – Tima

+0

mais vous savez, vous m'avez donné une idée :) Je vais essayer demain pour créer cette chose avec la disposition de la table :) – Tima

-1

Je recommande de recommencer et d'utiliser la vue de concepteur d'éclipse ou d'utiliser droiddraw pour créer la mise en page, d'autant plus qu'il y a des améliorations récentes apportées à l'éditeur de disposition.

+0

Droiddraw est très à court de données et ne supporte pas beaucoup de widgets de mise en page. Et le concepteur d'éclipse est inutile pour les vues complexes. – Falmarri

+0

Avez-vous quelque chose d'autre que vous recommandez? –

+0

C'étaient des captures d'écran du concepteur Eclipse. Et oui, j'ai essayé ma mise en page aussi en émulateur. Et probablement la seule chose pas gentille dans ma mise en page est à de nombreuses versions linéaires – Tima