我认为我遇到了layout_weight
的问题。我正在尝试将第四个按钮设置为其他按钮的两倍,但我得到以下内容:
我的布局如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:weightSum="1.0">
<!--android:background="@drawable/button_image"-->
<Button android:id="@+id/button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_weight="0.2" />
<Button android:id="@+id/button02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.2" />
<Button android:id="@+id/button03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.2" />
<Button android:id="@+id/button04"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.4" />
</LinearLayout>
重量是否应该给出我想要的东西?
答案 0 :(得分:2)
如果您想强制比例作为分数,请使按钮的layout_width
= 0,并且包含它们的布局的weightSum
等于它们的权重之和,而最后一步是没有必要的,如果有没有指定其权重的子视图,则将使用它来从剩余部分计算它。
请注意,如果您未将它们设置为0,则宽度将是wrap_content
和weight
得到的宽度的乘积,给出不精确的比例。
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/button1"
android:layout_weight="1"
android:text="1" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/button2"
android:layout_weight="1"
android:text="1" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/button3"
android:layout_weight="1"
android:text="1" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/button4"
android:layout_weight="2"
android:text="2" />
</LinearLayout>
答案 1 :(得分:0)
将layout_width
设置为0.我假设这是一个水平方向的LinearLayout
。
答案 2 :(得分:0)
layout_weight
以这种方式工作:
在你的情况下,wrap_content
给出的初始大小不会为第3步留下任何空间。使用layout_width
的0dp,如android推荐的那样,导致所有元素只被给予空格根据他们的体重,不论其内在大小。