2014-09-19 84 views
0

我在我需要在下面的格式以适合线性布局内8个布局的应用程序:拟合8个布局

   ---------------------- 
        1  |  2 
       ---------------------- 
        3  |  4 
       ---------------------- 
        5  |  6 
       ---------------------- 
        7  |  8 

我对于相同的创建的XML文件被如下:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/tableLayout1" 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="#000000" 
      > 


    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:baselineAligned="false" > 

    <FrameLayout 
     android:id="@+id/My_Container_1_ID" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 


     > 

    </FrameLayout> 

    <FrameLayout 
     android:id="@+id/My_Container_2_ID" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 

     > 
    </FrameLayout> 
</LinearLayout> 





    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:baselineAligned="false" > 

    <FrameLayout 
     android:id="@+id/My_Container_3_ID" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 

     android:layout_weight="1" 

     > 
    </FrameLayout> 

    <FrameLayout 
     android:id="@+id/My_Container_4_ID" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 

     android:layout_weight="1" 

     > 
    </FrameLayout> 
    </LinearLayout> 

     <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:baselineAligned="false" > 

    <FrameLayout 
     android:id="@+id/My_Container_5_ID" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 


     > 

    </FrameLayout> 

    <FrameLayout 
     android:id="@+id/My_Container_6_ID" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 

     > 
    </FrameLayout> 
</LinearLayout> 




     <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:baselineAligned="false" > 

    <FrameLayout 
     android:id="@+id/My_Container_7_ID" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
      android:layout_weight="1" 


     > 

    </FrameLayout> 

    <FrameLayout 
     android:id="@+id/My_Container_8_ID" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 

     > 
    </FrameLayout> 
</LinearLayout> 



</LinearLayout> 

无论我做什么,布局都没有正确对齐,有时候一个帧布局中的图像会覆盖其他布局。

任何帮助将深表谢意。

回答

0

您需要将layout_weight = 1添加到内部线性布局的所有四个方向都是水平的。添加match_parent和其他属性来获得所需要的结果,我做了一个在这里添加到他们

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/tableLayout1" 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="#000000"> 


    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:orientation="horizontal" 
     android:layout_weight="1" 
     android:baselineAligned="false" > 

     <FrameLayout 
      android:id="@+id/My_Container_1_ID" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1"/> 

     <FrameLayout 
      android:id="@+id/My_Container_2_ID" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1"/> 
    </LinearLayout> 


    .... 
    .... 
    .... 


</LinearLayout> 

的其余部分如果您添加类似属性的其他3布局,预计它会奏效。请注意,在使用权重时,它会根据Android的建议写入0dp。它会工作,但你应该考虑使用支持v7库的GridLayout。原因在于上述方法包含对性能不利的嵌套权重,此外不会滚动。所以在较小的设备上会出现奇怪的结果。

+0

作品辉煌!是的,就像我刚才提到的那样,我正在考虑使用网格布局,它在较小的设备上给出了奇怪的结果。非常感谢您的帮助! – shashank 2014-09-19 01:50:10