Domanda

Sto cercando di dividere una pagina in tre parti. Mi piacerebbe farlo in valori percentuali, tuttavia non è supportato da Android. Invece devo usare android:layout_weight. Ma faccio fatica a capirlo e a farlo bene. Soprattutto come vengono calcolate le dimensioni effettive. C'è un modo per ottenere un valore percentuale (0..100%) android:layout_weight?

Ho attraversato alcuni casi (vedi screenshot allegato) per descrivere i problemi. I campi colorati sono tutti <LinearLayout> insieme a android:layout_height="fill_parent", perché voglio che l'intero schermo sia diviso tra quelli.

Caso 1

alt text

Ok, semplice. Ogni <LinearLayout> ottiene il 33%.

Caso 2

alt text

UPS?! Il primo (giallo) <LinearLayout> scompare completamente? Come mai?

Caso 3

alt text

Di nuovo confuso. Il giallo <LinearLayout> è tornato. Tuttavia, i due primi <LinearLayout> Con il peso più pesante si riduce? Cosa sta succedendo?

Caso 4

alt text

Non ho assolutamente idea di cosa sia la matematica dietro tutto questo.

È stato utile?

Soluzione

C'è un modo per ottenere un valore percentuale (0..100%) da Android: layout_weight?

Sicuro. Falli aggiungere fino a 100.

Per il tuo "valore percentuale", vuoi il android:layout_height dei singoli elementi all'interno del LinearLayout essere 0px.

Altri suggerimenti

Quando usi Android: Layout_height = "Fill_Parent" per le barre, non stai lasciando spazio disponibile. (Dal momento che stanno riempiendo il genitore.) Poiché tutti e 3 sono impostati per riempire, l'altezza richiesta è in realtà 3 volte l'altezza del genitore, quindi i pesi vengono applicati a uno spazio rimanente negativo. Questo spiega lo strano comportamento che stai vedendo e perché impostare layout_height su 0px lo risolve.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top