我正在尝试设计一个基本上由以下内容组成的布局
线性布局(水平)
线性布局(垂直)
(垂直结束)
线性布局(垂直)
(垂直结束)
(水平末端)
现在我还有 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>
这种类型的布局可能会减慢你的UI速度,你可以使用GridView来生成这种类型的列表。请记住,嵌套视图会减慢您的应用程序的速度,并且当您将此类 UI 插入 ScrollView 时,它会更加明显(滚动会非常慢)。