views:

59

answers:

1

I'm trying to divide a page in three parts. I'd like to do it in percentage values, however that is not supported by Android. Instead I have to use android:layout_weight. But I have a hard time understanding it and getting it right. Especially how the actual size gets calculated. Is there a way to get a percentage value (0..100%) out of android:layout_weight?

I went through a few cases (see attached screenshot) to describe the problems. The colored fields are all <LinearLayout> with android:layout_height="fill_parent", because I want the full screen to be divided between those.

Case 1

alt text

Okay, simple. Every <LinearLayout> gets 33%.

Case 2

alt text

Ups?! The first (yellow) <LinearLayout> disappears completely? Why?

Case 3

alt text

Confused again. The yellow <LinearLayout> is back. However, the two first <LinearLayout> with the heavier weight get smaller? What is going on?

Case 4

alt text

I have absolutely no idea what the maths behind all this is.

+4  A: 

Is there a way to get a percentage value (0..100%) out of android:layout_weight?

Sure. Make them add up to 100.

For your "percentage value", you want the android:layout_height of the individual items within the LinearLayout to be 0px.

CommonsWare
Mark, you made my day. You can't believe how much time I already spent trying to figure the weird cases out. And a simple `android:layout_height="0px"` solves everything :-)
znq