我正在尝试设计一个基本上由以下内容组成的布局
线性布局(水平)
线性布局(垂直)
(垂直结束)
线性布局(垂直)
(垂直结束)
(横向结束)
现在我还有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>
下面是截图。
答案 0 :(得分:3)
以下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>
这会产生以下布局
答案 1 :(得分:2)
试试这段代码
<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>
答案 2 :(得分:1)
嵌套布局会导致性能下降。您可以改用GridView
。并在单独的XML文件中创建网格项的布局。使用适配器(ViewHolder
样式),将其设置为GridView
。查看this了解详情。
答案 3 :(得分:1)
这种类型的布局可能会降低您的UI速度,您可以使用GridView生成此类类型的列表。请记住,嵌套视图会降低应用程序的速度,当您将这种类型的UI插入ScrollView时,它会更加明显(滚动速度非常慢)。