我正在尝试将一对视图(让我们说N)放在一行中,这样它们中的每一个都将占据屏幕宽度的1 / N.我知道如何使用LinearLayout(layoutWeight
)来实现这一点,但问题是我需要有另一个布局,这些布局将显示在此行中的某些视图下方。问题是因为所有这些视图都被包装到LinearLayout中,所以我不能将我的附加布局放在这个布局中(出于显而易见的原因),我不能从LinearLayout引用特定视图并将我的视图放在它下面。一些视觉辅助,以帮助解释自己:
所以我想在上面第三个框的正下方显示灰色框。目前我通过获取屏幕宽度并将其分成N个相等部分并为此视图设置适当的边距来实现此目的。但是,我不太喜欢这个。有没有更好的方法来实现它?
答案 0 :(得分:1)
所以这是我的想法因为Android上的xml非常难。
在线性布局中,在其中创建2个部分,1个线性布局,另一个相对布局使用LayoutWeight,使用原始线性布局将它们分开。
答案 1 :(得分: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>