在Android应用上使用layout_weight时,我遇到了一些奇怪的故障。为了确保我不浪费任何人的时间。当我有三个自定义视图并给出两个视图时,权重为1,一个视图的权重为2.权重为2的视图应该是最大的,对吧?因为那件事发生在我身上。
几个例子的行为:
代码:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="25dp"
android:layout_marginEnd="25dp"
android:orientation="vertical"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="parent"
app:layout_constraintBottom_toBottomOf="parent">
<CUSTOMVIEW
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="12.5dp"
android:layout_weight="1.1" />
<CUSTOMVIEW
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12.5dp"
android:layout_marginBottom="12.5dp"
android:layout_weight="1.1"/>
<CUSTOMVIEW
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12.5dp"
android:layout_weight="1"/>
</LinearLayout>
注意:我尝试为自定义视图提供0dp
的宽度和高度,但它们完全消失了。
答案 0 :(得分:1)
制作高度0dp
和宽度wrap_content
。干得好B.Cakir。
答案 1 :(得分:0)
如果要在视图中使用layout_weight,则必须在父视图中使用weight_sum。例如:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="25dp"
android:layout_marginEnd="25dp"
android:orientation="vertical"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:weightSum="3.2">
<CUSTOMVIEW
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="12.5dp"
android:layout_weight="1.1" />
<CUSTOMVIEW
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12.5dp"
android:layout_marginBottom="12.5dp"
android:layout_weight="1.1"/>
<CUSTOMVIEW
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12.5dp"
android:layout_weight="1"/>
</LinearLayout>
请注意,weight_sum属性是1.1 + 1.1 + 1 = 3.2
的结果