Платформы Android: как избежать вложенных весов?

ребята. Я пытаюсь закодировать макет для деятельности, которая содержит 4 разных фрагмента, фрагмент списка и три фрагмента, связанные с деталями. Я пытаюсь сделать его похожим на следующую диаграмму Введите описание изображения здесь

С LinearLayout я могу получить соотношение 30/70 между фрагментом списка и детализацией (где должны присутствовать остальные три фрагмента). Однако, имея дело с этими тремя фрагментами, я действительно не знаю, как сохранить их в пределах отношений, которые я ожидаю от них, поскольку вы не можете вложить макеты с атрибутами weightSum.

Я пытался с RelativeLayouts, но не хочу идти с значениями «wrap_content», так как часть содержимого больше, чем другие, что нарушает таким образом внешний вид, который я пытаюсь достичь.

Есть ли способ сделать это? Я знаю TableLayouts, но AFAIK они похожи на HTML-таблицы: что-то использовать с данными, а не как инструмент выкладки …

Solutions Collecting From Web of "Платформы Android: как избежать вложенных весов?"

Вложенные веса должны работать отлично, я использовал их несколько раз, хотя затмение показывает намек на то, что «вложенные веса плохи для производительности».

Вы должны попробовать что-то вроде:

<LinearLayout android:id="@+id/main_layout" android:layout_height="match_parent" android:layout_width="match_parent" android:weightSum="1" android:orientation="horizontal"> <LinearLayout android:id="@+id/layout_fragment_a" android:layout_height="match_parent" android:layout_width="0dp" android:layout_weight="0.5"/> <LinearLayout android:id="@+id/layout_container_b_c" android:layout_height="match_parent" android:layout_width="0dp" android:layout_weight="0.5" android:weightSum="1" android:orientation="vertical"> <LinearLayout android:id="@+id/layout_fragment_b" android:layout_height="0dp" android:layout_width="match_parent" android:layout_weight="0.7"/> <LinearLayout android:id="@+id/layout_fragment_c" android:layout_height="0dp" android:layout_width="match_parent" android:layout_weight="0.3"/> </LinearLayout> </LinearLayout> 

И так я делал это еще раз. Xml может иметь некоторые сбои и опечатки (теперь выставлять строчку в окне ответа: P), но это должно помочь вам получить идею: один основной макет (main_layout) с использованием полного пространства и содержащий два макета второго уровня шириной 50% каждый ( Fragment_a и container_b_C) и еще один макет буксировки в onw из макетов второго уровня, разделяющий пространство в этом макете 70/30 (фрагмент_b и фрагмент_c) 🙂

Надеюсь, поможет!

Почему бы не попробовать:

 <LinearLayout android_width="30.0" android_height="fill_parent"/> <LinearLayout android_width="50.0" android_height="fill_parent"/> <LinearLayout android_width="50.0" android_height="fill_parent"> <LinearLayout android_width="fill_parent" android_height="70.0"/> <LinearLayout android_width="fill_parent" android_height="30.0"/> </LinearLayout> 

Я не тестировал его (а не на моем круге Eclipse прямо сейчас), но это должно сделать трюк …