10

伙计们。我正在尝试为包含 4 个不同片段、一个列表片段和三个与细节相关的片段的活动编写布局。我试着让它看起来像下图 在此处输入图像描述

使用 LinearLayout,我可以获得列表片段和详细信息区域(其他三个片段应该在的位置)之间的 30/70 比率。但是,在处理这三个片段时,我真的不知道如何将它们保持在我期望它们具有的比率内,因为您不能使用 weightSum 属性嵌套布局。

我一直在尝试使用 RelativeLayouts,但不想使用“wrap_content”值,因为某些内容比其他内容大,从而破坏了我想要实现的外观。

有没有办法做到这一点?我知道 TableLayouts,但 AFAIK 它们就像 HTML 表格:与数据一起使用的东西,而不是作为布局工具......

4

2 回答 2

13

嵌套权重应该可以正常工作,尽管 eclipse 显示了“嵌套权重对性能不利”的提示,但我已经使用了几次。

您应该尝试以下方法:

<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) 以及第二级布局中的另一个拖曳布局将该布局中的空间分割为 70/30 (fragment_b 和 fragment_c) :)

希望能帮助到你!

于 2013-01-28T17:45:10.653 回答
0

为什么不尝试:

<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 工作空间上),但这应该可以解决问题......

于 2013-01-28T16:03:44.017 回答