线性布局不等于宽度

时间:2019-01-07 10:22:14

标签: android xml android-linearlayout

我知道如何将布局分为3或4个相等的部分,但是如何以这种方式将线性布局(水平)分为4个部分?

enter image description here 如您所见,零件编号“ 1”是零件“ 3”和“ 4”的3倍。 相反,部件号“ 2”是部件“ 3”和“ 4”的2倍。

我尝试过这样:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/edColore"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="4"
        android:background="@android:color/white"
        android:text="ARANCIONE" />

    <TextView
        android:id="@+id/edGiorno"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="2"
        android:background="@android:color/holo_green_light"
        android:text="Button" />

    <TextView
        android:id="@+id/edOra"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="@android:color/holo_blue_light"
        android:text="Button" />

    <TextView
        android:id="@+id/edPosizione"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="@android:color/holo_red_light"
        android:text="Button" />

</LinearLayout>

但是请不要按我的意愿工作: enter image description here

3 个答案:

答案 0 :(得分:1)

您应该使用android:weightSum

  

定义最大重量总和。如果未指定,则总和由下式计算   添加所有子项的layout_weight。这可以用于   实例给单个孩子提供总可用空间的50%   将其的layout_weight设置为0.5,并将weightSum设置为1.0。

您的 XML

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="8" >

        <TextView
            android:id="@+id/edColore"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="4"
            android:background="@android:color/white"
            android:text="ARANCIONE" />

        <TextView
            android:id="@+id/edGiorno"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="2"
            android:background="@android:color/holo_green_light"
            android:text="Button" />

        <TextView
            android:id="@+id/edOra"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="@android:color/holo_blue_light"
            android:text="Button" />

        <TextView
            android:id="@+id/edPosizione"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="@android:color/holo_red_light"
            android:text="Button" />

</LinearLayout>

答案 1 :(得分:1)

尝试一下

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="10">

    <TextView
        android:id="@+id/edColore"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="5"
        android:background="@android:color/white"
        android:text="ARANCIONE" />

    <TextView
        android:id="@+id/edGiorno"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="3"
        android:background="@android:color/holo_green_light"
        android:text="Button" />

    <TextView
        android:id="@+id/edOra"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="@android:color/holo_blue_light"
        android:text="Button" />

    <TextView
        android:id="@+id/edPosizione"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="@android:color/holo_red_light"
        android:text="Button" />

</LinearLayout>

答案 2 :(得分:0)

检查此最新代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

    <TextView
    android:id="@+id/edColore"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="3"
    android:background="@android:color/white"
    android:text="ARANCIONE" />

<TextView
    android:id="@+id/edGiorno"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="2"
    android:background="@android:color/holo_green_light"
    android:text="Button" />

<TextView
    android:id="@+id/edOra"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:background="@android:color/holo_blue_light"
    android:text="Button" />

<TextView
    android:id="@+id/edPosizione"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:background="@android:color/holo_red_light"
    android:text="Button" />
</LinearLayout>