繁体   English   中英

如何在线性布局(另一个线性布局的子级)中均匀分布视图?

[英]How can I distribute views in a linear layout (which is a child of another linear layout) evenly?

我正在尝试设计一个基本上由以下内容组成的布局

  • 线性布局(水平)

    • 线性布局(垂直)

      • 的TextView
      • 的TextView
      • ImageView的

      (垂直结尾)

    • 线性布局(垂直)

      • 的TextView
      • 的TextView
      • ImageView的

    (垂直结束)

(横向结束)

现在我还有2个类似于上述类似的线性布局(水平方向)。 布局文件中共有3个。

我能够构造以上要求。 但是,当我运行该应用程序时,视图并不会平均分布。 设备屏幕的底部和侧面有很多空白。

怎么做?

任何更正/建议都可以提供很大帮助。 谢谢。

以下是我的xml文件

 <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="20dp" android:baselineAligned="false" android:orientation="horizontal" > <LinearLayout android:id="@+id/ll1" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" > <TextView android:id="@+id/textView13" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal|center_vertical" android:text="@string/Connected" android:textSize="12sp" /> <TextView android:id="@+id/textView14" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal|center_vertical" android:text="@string/time" android:textSize="12sp" /> <ImageView android:id="@+id/lte3G" android:layout_width="64dp" android:layout_height="64dp" android:gravity="center_horizontal|center_vertical" android:src="@drawable/lte" /> </LinearLayout> <LinearLayout android:id="@+id/ll2" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" > <TextView android:id="@+id/textView22" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal|center_vertical" android:text="@string/Operator" android:textSize="12sp" /> <TextView android:id="@+id/textView23" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal|center_vertical" android:text="@string/Docomo" android:textSize="12sp" /> <ImageView android:id="@+id/operator" android:layout_width="64dp" android:layout_height="64dp" android:gravity="center_horizontal|center_vertical" android:src="@drawable/network" /> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="20dp" android:baselineAligned="false" android:orientation="horizontal" > <LinearLayout android:id="@+id/ll3" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" > <TextView android:id="@+id/textView16" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal|center_vertical" android:text="@string/Short" android:textSize="12sp" /> <TextView android:id="@+id/textView17" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal|center_vertical" android:text="@string/Messages" android:textSize="12sp" /> <ImageView android:id="@+id/SMS" android:layout_width="64dp" android:layout_height="64dp" android:gravity="center_horizontal|center_vertical" android:src="@drawable/sms" /> </LinearLayout> <LinearLayout android:id="@+id/ll4" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" > <TextView android:id="@+id/textView25" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal|center_vertical" android:text="@string/Connected1" android:textSize="12sp" /> <TextView android:id="@+id/textView26" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal|center_vertical" android:text="@string/Clients" android:textSize="12sp" /> <ImageView android:id="@+id/clients" android:layout_width="64dp" android:layout_height="64dp" android:gravity="center_horizontal|center_vertical" android:src="@drawable/clients" /> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="20dp" android:baselineAligned="false" android:orientation="horizontal" > <LinearLayout android:id="@+id/ll5" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" > <TextView android:id="@+id/textView19" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal|center_vertical" android:text="@string/Traffic" android:textSize="12sp" /> <TextView android:id="@+id/textView20" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal|center_vertical" android:text="@string/Usage" android:textSize="12sp" /> <ImageView android:id="@+id/traffic" android:layout_width="64dp" android:layout_height="64dp" android:gravity="center_horizontal|center_vertical" android:src="@drawable/traffic" /> </LinearLayout> <LinearLayout android:id="@+id/ll6" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" > <TextView android:id="@+id/textView28" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal|center_vertical" android:text="@string/Battery" android:textSize="12sp" /> <TextView android:id="@+id/textView29" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal|center_vertical" android:text="@string/Status" android:textSize="12sp" /> <ImageView android:id="@+id/imageView7" android:layout_width="64dp" android:layout_height="64dp" android:gravity="center_horizontal|center_vertical" android:src="@drawable/battery" /> </LinearLayout> </LinearLayout> 

以下是截图。

在此输入图像描述

以下xml解决了您的问题

<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="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    tools:context="com.example.stackoverflow_2.MainActivity" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="20dp"
        android:baselineAligned="false"
        android:orientation="horizontal"
        android:weightSum="2" >

        <LinearLayout
            android:id="@+id/ll1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/textView13"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal|center_vertical"
                android:text="@string/Connected"
                android:textSize="12sp" />

            <TextView
                android:id="@+id/textView14"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal|center_vertical"
                android:text="@string/time"
                android:textSize="12sp" />

            <ImageView
                android:id="@+id/lte3G"
                android:layout_width="64dp"
                android:layout_height="64dp"
                android:gravity="center_horizontal|center_vertical"
                android:src="@drawable/lte" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/ll2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/textView22"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal|center_vertical"
                android:text="@string/Operator"
                android:textSize="12sp" />

            <TextView
                android:id="@+id/textView23"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal|center_vertical"
                android:text="@string/Docomo"
                android:textSize="12sp" />

            <ImageView
                android:id="@+id/operator"
                android:layout_width="64dp"
                android:layout_height="64dp"
                android:gravity="center_horizontal|center_vertical"
                android:src="@drawable/network" />
        </LinearLayout>
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="20dp"
        android:baselineAligned="false"
        android:orientation="horizontal" >

        <LinearLayout
            android:id="@+id/ll3"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/textView16"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal|center_vertical"
                android:text="@string/Short"
                android:textSize="12sp" />

            <TextView
                android:id="@+id/textView17"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal|center_vertical"
                android:text="@string/Messages"
                android:textSize="12sp" />

            <ImageView
                android:id="@+id/SMS"
                android:layout_width="64dp"
                android:layout_height="64dp"
                android:gravity="center_horizontal|center_vertical"
                android:src="@drawable/sms" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/ll4"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/textView25"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal|center_vertical"
                android:text="@string/Connected1"
                android:textSize="12sp" />

            <TextView
                android:id="@+id/textView26"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal|center_vertical"
                android:text="Clients"
                android:textSize="12sp" />

            <ImageView
                android:id="@+id/clients"
                android:layout_width="64dp"
                android:layout_height="64dp"
                android:gravity="center_horizontal|center_vertical"
                android:src="@drawable/clients" />
        </LinearLayout>
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="20dp"
        android:baselineAligned="false"
        android:orientation="horizontal" >

        <LinearLayout
            android:id="@+id/ll5"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/textView19"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal|center_vertical"
                android:text="Traffic"
                android:textSize="12sp" />

            <TextView
                android:id="@+id/textView20"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal|center_vertical"
                android:text="Usage"
                android:textSize="12sp" />

            <ImageView
                android:id="@+id/traffic"
                android:layout_width="64dp"
                android:layout_height="64dp"
                android:gravity="center_horizontal|center_vertical"
                android:src="@drawable/traffic" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/ll6"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/textView28"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal|center_vertical"
                android:text="Battery"
                android:textSize="12sp" />

            <TextView
                android:id="@+id/textView29"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal|center_vertical"
                android:text="Status"
                android:textSize="12sp" />

            <ImageView
                android:id="@+id/imageView7"
                android:layout_width="64dp"
                android:layout_height="64dp"
                android:gravity="center_horizontal|center_vertical"
                android:src="@drawable/battery" />
        </LinearLayout>
    </LinearLayout>

</LinearLayout>

这将产生以下布局

在此输入图像描述

试试这段代码

    <LinearLayout
        android:id="@+id/ll1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textView13"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
           android:layout_gravity="center"
            android:gravity="center"
            android:text="@string/Connected"
            android:textSize="12sp" />

        <TextView
            android:id="@+id/textView14"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:text="@string/time"
            android:textSize="12sp" />

        <ImageView
            android:id="@+id/lte3G"
            android:layout_width="64dp"
            android:layout_height="64dp"
            android:layout_gravity="center"
            android:gravity="center"
            android:src="@drawable/lte" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/ll2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textView22"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:text="@string/Operator"
            android:textSize="12sp" />

        <TextView
            android:id="@+id/textView23"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
           android:layout_gravity="center"
            android:gravity="center"
            android:text="@string/Docomo"
            android:textSize="12sp" />

        <ImageView
            android:id="@+id/operator"
            android:layout_width="64dp"
            android:layout_height="64dp"
            android:layout_gravity="center"
            android:gravity="center"
            android:src="@drawable/network" />
    </LinearLayout>
</LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_margin="20dp"
    android:baselineAligned="false"
    android:orientation="horizontal" >

    <LinearLayout
        android:id="@+id/ll3"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textView16"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:text="@string/Short"
            android:textSize="12sp" />

        <TextView
            android:id="@+id/textView17"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:text="@string/Messages"
            android:textSize="12sp" />

        <ImageView
            android:id="@+id/SMS"
            android:layout_width="64dp"
            android:layout_height="64dp"
            android:layout_gravity="center"
            android:gravity="center"
            android:src="@drawable/sms" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/ll4"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textView25"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:text="@string/Connected1"
            android:textSize="12sp" />

        <TextView
            android:id="@+id/textView26"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:text="@string/Clients"
            android:textSize="12sp" />

        <ImageView
            android:id="@+id/clients"
            android:layout_width="64dp"
            android:layout_height="64dp"
            android:layout_gravity="center"
            android:gravity="center"
            android:src="@drawable/clients" />
    </LinearLayout>
</LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_margin="20dp"
    android:baselineAligned="false"
    android:orientation="horizontal" >

    <LinearLayout
        android:id="@+id/ll5"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textView19"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:text="@string/Traffic"
            android:textSize="12sp" />

        <TextView
            android:id="@+id/textView20"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:text="@string/Usage"
            android:textSize="12sp" />

        <ImageView
            android:id="@+id/traffic"
            android:layout_width="64dp"
            android:layout_height="64dp"
            android:layout_gravity="center"
            android:gravity="center"
            android:src="@drawable/traffic" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/ll6"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textView28"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:text="@string/Battery"
            android:textSize="12sp" />

        <TextView
            android:id="@+id/textView29"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
           android:layout_gravity="center"
            android:gravity="center"
            android:text="@string/Status"
            android:textSize="12sp" />

        <ImageView
            android:id="@+id/imageView7"
            android:layout_width="64dp"
            android:layout_height="64dp"
           android:layout_gravity="center"
            android:gravity="center"
            android:src="@drawable/battery" />
    </LinearLayout>
</LinearLayout>

嵌套布局会导致性能下降。 您可以使用GridView 在单独的XML文件中创建网格项的布局。 使用适配器( ViewHolder样式),将其设置为GridView 查看信息以获取更多信息。

这种类型的布局可能会降低您的UI速度,您可以使用GridView生成此类类型的列表。 请记住,嵌套视图会降低您的应用程序的速度,并且当您将这种类型的UI插入ScrollView时,它更加可见(滚动会非常慢)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM