-2

J'ai quelques LinearLayouts l'intérieur d'un LinearLayout comme suit:LinearLayouts multiples à l'intérieur LinearLayout ne fonctionne pas correctement

<LinearLayout 
android:layout_gravity="center|top" 
android:padding="10dp" 
android:orientation="horizontal" 
android:layout_width="match_parent" 
android:layout_height="wrap_content"> 

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_weight="1" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content"> 
    <TextView 
     android:gravity="center" 
     android:layout_marginLeft="10dp" 
     android:layout_marginRight="10dp" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" /> 
    <Spinner 
     android:minWidth="100dp" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent"> 

    </Spinner> 
</LinearLayout> 

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_weight="1" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content"> 
    <TextView 
     android:gravity="center" 
     android:layout_marginLeft="10dp" 
     android:layout_marginRight="10dp" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" /> 
    <Spinner 
     android:minWidth="100dp" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent"> 

    </Spinner> 
</LinearLayout> 

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_weight="1" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content"> 
    <TextView 
     android:gravity="center" 
     android:layout_width="wrap_content" 
     android:layout_marginLeft="10dp" 
     android:layout_marginRight="10dp" 
     android:layout_height="match_parent" /> 
    <Spinner 
     android:minWidth="100dp" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent"> 

    </Spinner> 
</LinearLayout> 

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_weight="1" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content"> 
    <TextView 
     android:layout_marginLeft="10dp" 
     android:layout_marginRight="10dp" 
     android:gravity="center" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" /> 
    <Spinner 
     android:minWidth="100dp" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent"> 

    </Spinner> 
</LinearLayout> 

</LinearLayout> 

maintenant la mise en page ressemble tout va bien dans la fenêtre de conception dans Android Studio, mais une fois que l'application est exécutée la mise en page est affiché deux fois sur l'appareil - une fois mort (ne fonctionne pas du tout) et une fois qu'il fonctionne comme il se doit.

J'ai eu un TextView simple dans le LinearLayout principal avant et cela a bien fonctionné, mais une fois enlevé cela ne fonctionne plus.

Je peux réellement supprimer ce comportement en ajoutant un TextView avec "layout_width" et "layout_height" réglé sur "0dp" mais il doit y avoir une bonne solution. J'ai déjà essayé de remplacer le LinearLayouts w/RelativeLayouts mais ça ne marche pas non plus.

+0

Vous dites que "une fois l'application exécutée, la mise en page est affichée deux fois sur l'appareil", mais il n'y a aucun moyen de vérifier cela depuis que vous avez publié du code java. Pourriez-vous ajouter cela à la question? –

+0

Pourquoi avez-vous textviews avec le spinner? – DroiDev

+0

essayez de changer ces poids de 1 à 0,25 – DroiDev

Répondre

0

vous configurez

android: layout_weight = "1"

sans mettre weightSum dans LinearLayout parent. Est-ce sur le but?

Aussi, je vous suggère d'utiliser ConstraintLayout au lieu de LinearLayouts imbriqués.

+0

Ajout de weightSum au parent LinearLayout n'a pas aidé malheureusement. Je vais regarder le ConstraintLayout, merci pour suggestion. – kulhajs