2014-10-22 98 views
2

我试图设计布局基本上由以下如何均匀分布视图线性布局(这是另一个线性布局的孩子)?

  • 线性布局(水平)

    • 线性布局(垂直)

      • 的TextView
      • 的TextView的
      • imageview

      (的竖直端)

    • 线性布局(垂直)

      • 的TextView
      • 的TextView
      • imageview的

    (垂直的端的iCal)

(的水平端)

现在我有类似种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>

下面是截图。

enter image description here

+2

你可以试试GI ving'match_parent'在父线性布局的高度并正确使用weight和weightSum – 2014-10-22 09:04:28

+0

考虑使用GridView,而不是嵌套布局。 – 2014-10-22 09:04:56

+0

使用layout_weight和weightSum – Meenal 2014-10-22 09:07:23

回答

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> 

这将产生以下布局

enter image description here

+0

公牛的眼睛...... !!! Dat工作。非常感谢:) – 2014-10-22 09:57:24

+0

@ItapuVinay :) :) :) – 2014-10-22 10:01:50

1

嵌套式布局造成不好的性能。您可以改用GridView。在一个单独的XML文件中创建一个网格项目的布局。使用适配器(ViewHolder样式),将其设置为GridView。查看this了解更多信息。

1

这种类型的布局可能会减慢你的UI,你可以使用GridView来生成这种类型的列表。请记住,嵌套视图可能会降低应用程序的速度,并且在将该类型的用户界面插入到ScrollView时滚动会更加明显(滚动将非常缓慢)。

+0

我完全同意你的看法。但我被指示使用嵌套线性布局来做 – 2014-10-22 09:16:07

+1

您仍然可以使用嵌套视图来实现这种类型的菜单。在你的代码中你有2级嵌套视图,这不会影响你的性能(特别是如果该视图不在ScrollView内)。在你的代码中,我建议使用android:layout_gravity和android:gravity属性来尝试居中视图。 BTW使用match_parent,而不是fill_parent属性。 – Arshak92 2014-10-22 09:26:49

+0

我只是推荐你使用GridView和ListView,如果你将不得不产生比这更大的列表。 – Arshak92 2014-10-22 09:28:00

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> 
+0

尝试此代码... – Meenal 2014-10-22 09:39:55

+0

感谢您的答复。它很适合现在的屏幕。但底部的白色空间仍然是 – 2014-10-22 09:47:54

+1

从顶部添加边距..空间取决于屏幕大小..和项目高度 – Meenal 2014-10-22 09:50:47