我希望在屏幕的下半部分有3个正方形和一个矩形,如下所示:
有没有人知道如何调整形状,使得前3个保持为正方形,矩形的宽度是正方形的两倍',即使屏幕的垂直高度是长/短?我已尝试使用layout_weight:1.0
,但高度可能会延长。
我希望不需要固定宽度和高度。
由于
答案 0 :(得分:0)
您可以使用GridLayout
来实现此目标,因为它支持columnWeight
和rowWeight
属性。为每一行设置rowWeight
到1
,每个正方形columnWeight
到1
和columnSpan
到2
的矩形应创建您想要的效果。
要在21级以下的API级别使用此功能,请改用GridLayout
的支持版本。
答案 1 :(得分:0)
可能是一种矫枉过正,而不是因为性能问题而推荐。但仍然:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_weight="0.5"
android:layout_height="0dp">
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_weight="0.5"
android:weightSum="2"
android:orientation="vertical"
android:layout_height="0dp">
<LinearLayout
android:layout_weight="1"
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="0dp">
<LinearLayout
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent">
</LinearLayout>
<LinearLayout
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent">
</LinearLayout>
<LinearLayout
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent">
</LinearLayout>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_weight="1"
android:weightSum="3"
android:layout_width="match_parent"
android:layout_height="0dp">
<LinearLayout
android:layout_weight="2"
android:layout_width="0dp"
android:layout_height="match_parent">
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
答案 2 :(得分:0)
有很多方法可以执行此操作,如果您愿意,可以仅使用layout_weight
来实现它。
1)通过为每个视图设置layout_weight="1"
,将第一行划分为3个相等大小的视图。
2)在第二行中,您要将“视图”设置为等于2个视图的大小:数学为2/3 = 0.67。
3)所以在第二行设置视图layout_weight="0.67"
。您还必须为隐形视图提供剩余的0.33宽度。
像这样:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<View
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"/>
<View
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"/>
<View
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<View
android:layout_weight="0.67"
android:layout_width="0dp"
android:layout_height="wrap_content"
/>
<View
android:layout_weight="0.33"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:visibility="invisible"/>
</LinearLayout>