0

我试图在一行中放置几个​​视图(比如说 N),这样每个视图都将占据屏幕宽度的 1/N。我知道如何使用 LinearLayout( layoutWeight) 来实现这一点,但问题是我需要有另一个布局将出现在该行中的某些视图下方。问题是,由于所有这些视图都包含在 LinearLayout 中,因此我无法将其他布局放置在此布局中(原因很明显),并且我无法从 LinearLayout 引用特定视图并将我的视图放置在其下方。一些视觉帮助以帮助解释我自己:

在此处输入图像描述

所以我想在上面第三个框的正下方显示灰色框。目前,我通过获取屏幕宽度并将其分成 N 个相等的部分并为此视图设置适当的边距来实现这一点。不过,我不太喜欢这个。有没有更好的方法来实现它?

4

2 回答 2

1

所以这是我的想法,因为 android 上的 xml 真的很难。

在线性布局内部创建 2 个部分,其中 1 个是线性布局,另一个是相对布局,使用 LayoutWeight 使用原始线性布局将它们分开。

于 2012-04-09T19:02:12.237 回答
1

所以你想让一个 View 或 ViewGroup 定位,使其中心位于第三个框的中心正下方?

它可能但不是很优雅:

这个想法是使用表格布局和 android:layout_span 来连接第二行中的 3 个单元格,并在该表格范围内使用居中视图。

示例表布局:

<TableRow>

    <TextView
        android:layout_column="0"
        android:gravity="center"
        android:padding="3dip"
        android:text="0" />

    <TextView
        android:layout_column="1"
        android:gravity="center"
        android:padding="3dip"
        android:text="1" />

    <TextView
        android:layout_column="2"
        android:gravity="center"
        android:padding="3dip"
        android:text="2" />

    <TextView
        android:layout_column="3"
        android:gravity="center"
        android:padding="3dip"
        android:text="3" />

    <TextView
        android:layout_column="4"
        android:gravity="center"
        android:padding="3dip"
        android:text="4" />
</TableRow>

<TableRow>

    <TextView
        android:layout_column="0"
        android:gravity="center"
        android:padding="3dip"
        android:text="0" />

    <RelativeLayout
        android:layout_span="3"
        android:padding="3dip" >

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:gravity="center"
            android:text="Button 1,2,3" />
    </RelativeLayout>

    <TextView
        android:layout_column="4"
        android:gravity="center"
        android:padding="3dip"
        android:text="4" />
</TableRow>

于 2012-04-09T19:29:18.720 回答