Как я могу установить высоту кода для внутреннего LinearLayouts, чтобы быть точно 1/5 его родительского LinearLayout? - PullRequest
0 голосов
/ 07 января 2012

Я определяю все компоненты GUI в коде без файла макета xml. У меня есть основной линейный макет и 5 внутренних макетов в нем. Код:

LinearLayout llMain = new LinearLayout (this);
llMain.setLayoutParams(new ViewGroup.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT ));
llMain. setOrientation (LinearLayout.VERTICAL);
llMain.setWeightSum(1.0f);

LinearLayout ll1 = new LinearLayout(this);

LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT);
lp.weight = 0.2f

ll1.setLayoutParams(lp);

llMain.addView(ll1);

....
....

Но это не дает ожидаемого результата. Внутренний макет ll1 имеет около 70% высоты макета llMain вместо 20%. Итак, как я могу установить высоту внутреннего макета ll1 равным 1/5 высоты его родительского макета llMain? Благодарю.

Ответы [ 2 ]

0 голосов
/ 07 января 2012

Если я не помню неправильно, в этом есть действительно крутой трюк.Я помню это из Google I / O говорит.Вы должны дать всем членам содержимого layout_height равно 0, а затем вы должны использовать layout_weight, чтобы дать правильный процент (в данном случае layout_weight = 20).

Попробуйте сделать этот трюк:)

0 голосов
/ 07 января 2012

Я думаю, это должно быть

lp.weight = 0.2f;

Можете ли вы попробовать это и сообщить нам результат?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...