这是我的代码
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="1">
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.75">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New "
android:id="@+id/button"
android:layout_weight="1"
android:background="#ffffffff" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New "
android:id="@+id/button2"
android:layout_weight="1"
android:background="#ffffffff" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New "
android:id="@+id/button3"
android:layout_weight="1"
android:background="#ffffffff" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="3"
>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New "
android:id="@+id/button5"
android:layout_weight="2"
android:background="#ffffffff" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New "
android:id="@+id/button7"
android:layout_weight="1"
android:background="#ffffffff" />
</LinearLayout>
</LinearLayout>
<Button
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="0.25"
android:text="New "
android:id="@+id/button4"
android:background="#ffffffff" />
</LinearLayout>
这就是它的样子:
我希望第一个This的宽度为前两个New和第二个这个宽度为第三个新
所以它看起来像这样:
我能做到的唯一方法是将权重设为0.93 / 0.07
不应该使用权重2/1,因为上面的代码是?
答案 0 :(得分:2)
尝试遗漏android:weightSum="3"
第二行按钮。省略weightSum时,默认情况下总计视图的权重,它们基本上成为直线比例(比率为2比1)。因此,只使用weight = 2作为第一个按钮(id button5),然后weight = 1表示第二个按钮(id button7)应该可以工作。
此外,在使用layout_weight
时,请确保您的可调整大小的视图的layout_width
或layout_height
等于零。
试试这个xml:
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="1">
<LinearLayout
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.75">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="New "
android:id="@+id/button"
android:layout_weight="1"
android:background="#ffffffff" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="New "
android:id="@+id/button2"
android:layout_weight="1"
android:background="#ffffffff" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="New "
android:id="@+id/button3"
android:layout_weight="1"
android:background="#ffffffff" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="New "
android:id="@+id/button5"
android:layout_weight="2"
android:background="#ffffffff" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="New "
android:id="@+id/button7"
android:layout_weight="1"
android:background="#ffffffff" />
</LinearLayout>
</LinearLayout>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.25"
android:text="New "
android:id="@+id/button4"
android:background="#ffffffff" />
</LinearLayout>
答案 1 :(得分:1)
这是我写的方式,你想要的布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="1">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="New "
android:id="@+id/button1"
android:layout_weight="1"
android:background="#ffffffff" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="New "
android:id="@+id/button2"
android:layout_weight="1"
android:background="#ffffffff" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="New "
android:id="@+id/button4"
android:layout_weight="2"
android:background="#ffffffff" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<Button
android:layout_width="wrap_content"
android:layout_height="0dp"
android:text="New "
android:id="@+id/button5"
android:layout_weight="1"
android:background="#ffffffff" />
<Button
android:layout_width="wrap_content"
android:layout_height="0dp"
android:text="New "
android:id="@+id/button6"
android:layout_weight="1"
android:background="#ffffffff" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="6"
>
<Button
android:layout_width="wrap_content"
android:layout_height="0dp"
android:text="New "
android:id="@+id/button7"
android:layout_weight="1"
android:background="#ffffffff" />
</LinearLayout>
</LinearLayout>
这是结果
我只有一件事我不确定,为什么在我的上一次LinearLayout中我必须加权= 6才能让按钮处于那个高度。我正在寻找原因:/