Android 布局权重和最大宽度

Android 布局权重和最大宽度,android,Android,我的布局如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"

我的布局如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:tools="http://schemas.android.com/tools"
              android:layout_width="match_parent"
              android:layout_height="56dp"
              android:baselineAligned="false"
              android:gravity="center_horizontal"
              android:orientation="horizontal">

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center_horizontal"
        android:minWidth="80dp"
        android:orientation="vertical"
        android:paddingBottom="8dp"
        android:paddingEnd="12dp"
        android:paddingStart="12dp"
        android:paddingTop="8dp">

        <ImageView
            android:id="@+id/img1"
            android:layout_width="24dp"
            android:layout_height="24dp"
            android:scaleType="fitCenter"
            android:src="@drawable/ic_search"
            tools:ignore="ContentDescription"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/latitude"
            android:textAlignment="center"
            android:textSize="12sp"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center_horizontal"
        android:minWidth="80dp"
        android:orientation="vertical"
        android:paddingBottom="8dp"
        android:paddingEnd="12dp"
        android:paddingStart="12dp"
        android:paddingTop="8dp">

        <ImageView
            android:id="@+id/img2"
            android:layout_width="24dp"
            android:layout_height="24dp"
            android:scaleType="fitCenter"
            android:src="@drawable/ic_search"
            tools:ignore="ContentDescription"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/latitude"
            android:textAlignment="center"
            android:textSize="12sp"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center_horizontal"
        android:maxWidth="168dp"
        android:minWidth="80dp"
        android:orientation="vertical"
        android:paddingBottom="8dp"
        android:paddingEnd="12dp"
        android:paddingStart="12dp"
        android:paddingTop="8dp">

        <ImageView
            android:id="@+id/img3"
            android:layout_width="24dp"
            android:layout_height="24dp"
            android:scaleType="fitCenter"
            android:src="@drawable/ic_search"
            tools:ignore="ContentDescription"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/latitude"
            android:textAlignment="center"
            android:textSize="12sp"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center_horizontal"
        android:maxWidth="168dp"
        android:minWidth="80dp"
        android:orientation="vertical"
        android:paddingBottom="8dp"
        android:paddingEnd="12dp"
        android:paddingStart="12dp"
        android:paddingTop="8dp">

        <ImageView
            android:id="@+id/img4"
            android:layout_width="24dp"
            android:layout_height="24dp"
            android:scaleType="fitCenter"
            android:src="@drawable/ic_search"
            tools:ignore="ContentDescription"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/latitude"
            android:textAlignment="center"
            android:textSize="12sp"/>

    </LinearLayout>


    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center_horizontal"
        android:minWidth="80dp"
        android:orientation="vertical"
        android:paddingBottom="8dp"
        android:paddingEnd="12dp"
        android:paddingStart="12dp"
        android:paddingTop="8dp">

        <ImageView
            android:id="@+id/img5"
            android:layout_width="24dp"
            android:layout_height="24dp"
            android:scaleType="fitCenter"
            android:src="@drawable/ic_search"
            tools:ignore="ContentDescription"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/latitude"
            android:textAlignment="center"
            android:textSize="12sp"/>
    </LinearLayout>
</LinearLayout>

我希望每个线性布局的子项都有80dp到168dp的宽度来分配空间。我不知道如何使用布局权重“在168dp之前均匀分配空间
”。我尝试使用
maxWidth
,但不起作用。

您应该使用

定义最大权重和。如果未指定,则总和由以下公式计算: 添加所有子项的布局权重。这可以用于 实例为单个子对象提供总可用空间的50% 将布局_权重设置为0.5,并将权重总和设置为1.0


......................           
..............
...........
FYI


好的,
android:minWidth
如果您使用
android:layout\u height

在布局下方通过将
android:weightSum=“5”
设置为BaseLayout将无法工作,同时删除
android:minWidth

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:tools="http://schemas.android.com/tools"
              android:layout_width="match_parent"
              android:layout_height="56dp"
              android:baselineAligned="false"
              android:gravity="center_horizontal"
              android:orientation="horizontal"
              android:weightSum="5">

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center_horizontal"
        android:orientation="vertical"
        android:paddingBottom="8dp"
        android:paddingEnd="12dp"
        android:paddingStart="12dp"
        android:paddingTop="8dp">

        <ImageView
            android:id="@+id/img1"
            android:layout_width="24dp"
            android:layout_height="24dp"
            android:scaleType="fitCenter"
            android:src="@drawable/ic_search"
            tools:ignore="ContentDescription"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/latitude"
            android:textAlignment="center"
            android:textSize="12sp"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center_horizontal"
        android:orientation="vertical"
        android:paddingBottom="8dp"
        android:paddingEnd="12dp"
        android:paddingStart="12dp"
        android:paddingTop="8dp">

        <ImageView
            android:id="@+id/img2"
            android:layout_width="24dp"
            android:layout_height="24dp"
            android:scaleType="fitCenter"
            android:src="@drawable/ic_search"
            tools:ignore="ContentDescription"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/latitude"
            android:textAlignment="center"
            android:textSize="12sp"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center_horizontal"
        android:minWidth="80dp"
        android:orientation="vertical"
        android:paddingBottom="8dp"
        android:paddingEnd="12dp"
        android:paddingStart="12dp"
        android:paddingTop="8dp">

        <ImageView
            android:id="@+id/img3"
            android:layout_width="24dp"
            android:layout_height="24dp"
            android:scaleType="fitCenter"
            android:src="@drawable/ic_search"
            tools:ignore="ContentDescription"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/latitude"
            android:textAlignment="center"
            android:textSize="12sp"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center_horizontal"
        android:minWidth="80dp"
        android:orientation="vertical"
        android:paddingBottom="8dp"
        android:paddingEnd="12dp"
        android:paddingStart="12dp"
        android:paddingTop="8dp">

        <ImageView
            android:id="@+id/img4"
            android:layout_width="24dp"
            android:layout_height="24dp"
            android:scaleType="fitCenter"
            android:src="@drawable/ic_search"
            tools:ignore="ContentDescription"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/latitude"
            android:textAlignment="center"
            android:textSize="12sp"/>

    </LinearLayout>


    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center_horizontal"
        android:orientation="vertical"
        android:paddingBottom="8dp"
        android:paddingEnd="12dp"
        android:paddingStart="12dp"
        android:paddingTop="8dp">

        <ImageView
            android:id="@+id/img5"
            android:layout_width="24dp"
            android:layout_height="24dp"
            android:scaleType="fitCenter"
            android:src="@drawable/ic_search"
            tools:ignore="ContentDescription"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/latitude"
            android:textAlignment="center"
            android:textSize="12sp"/>
    </LinearLayout>
</LinearLayout>


您是否尝试过为父布局分配一个android:weightSum?不,我不知道该怎么做这似乎并不完全是我想要的。我想将最大值设置为168dp。@greywolf82我假设android:minWidth不起作用。是的,当你设置重量时,似乎最小值和最大值都不起作用effect@greywolf82然后避免使用android:layout\u weight逻辑。是的,但是我怎么能说“设置最小宽度80dp,最大宽度168dp,然后分配另一个”?这不是我想要的。我希望空间均匀分布,但最大值为168dp。它不适用于此解决方案
    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:tools="http://schemas.android.com/tools"
              android:layout_width="match_parent"
              android:layout_height="56dp"
              android:baselineAligned="false"
              android:gravity="center_horizontal"
              android:orientation="horizontal"
              android:weightSum="5">

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center_horizontal"
        android:orientation="vertical"
        android:paddingBottom="8dp"
        android:paddingEnd="12dp"
        android:paddingStart="12dp"
        android:paddingTop="8dp">

        <ImageView
            android:id="@+id/img1"
            android:layout_width="24dp"
            android:layout_height="24dp"
            android:scaleType="fitCenter"
            android:src="@drawable/ic_search"
            tools:ignore="ContentDescription"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/latitude"
            android:textAlignment="center"
            android:textSize="12sp"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center_horizontal"
        android:orientation="vertical"
        android:paddingBottom="8dp"
        android:paddingEnd="12dp"
        android:paddingStart="12dp"
        android:paddingTop="8dp">

        <ImageView
            android:id="@+id/img2"
            android:layout_width="24dp"
            android:layout_height="24dp"
            android:scaleType="fitCenter"
            android:src="@drawable/ic_search"
            tools:ignore="ContentDescription"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/latitude"
            android:textAlignment="center"
            android:textSize="12sp"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center_horizontal"
        android:minWidth="80dp"
        android:orientation="vertical"
        android:paddingBottom="8dp"
        android:paddingEnd="12dp"
        android:paddingStart="12dp"
        android:paddingTop="8dp">

        <ImageView
            android:id="@+id/img3"
            android:layout_width="24dp"
            android:layout_height="24dp"
            android:scaleType="fitCenter"
            android:src="@drawable/ic_search"
            tools:ignore="ContentDescription"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/latitude"
            android:textAlignment="center"
            android:textSize="12sp"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center_horizontal"
        android:minWidth="80dp"
        android:orientation="vertical"
        android:paddingBottom="8dp"
        android:paddingEnd="12dp"
        android:paddingStart="12dp"
        android:paddingTop="8dp">

        <ImageView
            android:id="@+id/img4"
            android:layout_width="24dp"
            android:layout_height="24dp"
            android:scaleType="fitCenter"
            android:src="@drawable/ic_search"
            tools:ignore="ContentDescription"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/latitude"
            android:textAlignment="center"
            android:textSize="12sp"/>

    </LinearLayout>


    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center_horizontal"
        android:orientation="vertical"
        android:paddingBottom="8dp"
        android:paddingEnd="12dp"
        android:paddingStart="12dp"
        android:paddingTop="8dp">

        <ImageView
            android:id="@+id/img5"
            android:layout_width="24dp"
            android:layout_height="24dp"
            android:scaleType="fitCenter"
            android:src="@drawable/ic_search"
            tools:ignore="ContentDescription"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/latitude"
            android:textAlignment="center"
            android:textSize="12sp"/>
    </LinearLayout>
</LinearLayout>