2011-07-15 142 views
3

我有一個LinearLayout,其中包含基本上模仿3x2網格的子佈局。每個子佈局在屏幕上佔用相等的空間(寬度)。現在,我正在尋找兩行子畫面拉伸高度,以便每個畫面佔用50%的屏幕。我試着玩弄重量,但是我不知道如何修改我現有的佈局代碼,而不會弄亂用於寬度的現有重量。任何人都可以提供一些幫助嗎?謝謝!這是我的佈局代碼:Android擴展布局高度,使佈局佔用屏幕的50%

<LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="fill_parent" 
     android:layout_marginBottom="2dip" 
     android:layout_height="wrap_content" > 

      <LinearLayout 
       android:orientation="vertical" 
       android:layout_width="0dp" 
       android:layout_weight="50" 
       android:padding="10dip" 
       android:layout_marginRight="1dip" 
       android:background="@drawable/detail_row" 
       android:layout_height="wrap_content" > 

        <ImageView 
         android:id="@+id/menuImage1" 
         android:layout_gravity="center_horizontal|center_vertical" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" /> 

        <TextView 
         android:id="@+id/textImage1" 
         android:layout_column="1" 
         android:layout_gravity="center_horizontal|center_vertical" 
         android:text="" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" /> 

      </LinearLayout> 


      <LinearLayout 
       android:orientation="vertical" 
       android:layout_width="0dp" 
       android:layout_weight="50" 
       android:padding="10dip" 
       android:layout_marginLeft="1dip" 
       android:layout_marginRight="1dip" 
       android:background="@drawable/detail_row" 
       android:layout_height="wrap_content" > 

        <ImageView 
         android:id="@+id/menuImage2" 
         android:layout_gravity="center_horizontal|center_vertical" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" /> 

        <TextView 
         android:id="@+id/textImage2" 
         android:layout_column="1" 
         android:layout_gravity="center_horizontal|center_vertical" 
         android:text="" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" /> 

      </LinearLayout> 

      <LinearLayout 
       android:orientation="vertical" 
       android:layout_width="0dp" 
       android:layout_weight="50" 
       android:padding="10dip" 
       android:layout_marginLeft="1dip" 
       android:background="@drawable/detail_row" 
       android:layout_height="wrap_content" > 

        <ImageView 
         android:id="@+id/menuImage3" 
         android:layout_gravity="center_horizontal|center_vertical" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" /> 

        <TextView 
         android:id="@+id/textImage3" 
         android:layout_column="1" 
         android:layout_gravity="center_horizontal|center_vertical" 
         android:text="" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" /> 

      </LinearLayout> 

    </LinearLayout> 

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

      <LinearLayout 
       android:orientation="vertical" 
       android:layout_width="0dp" 
       android:layout_weight="50" 
       android:padding="10dip" 
       android:layout_marginRight="1dip" 
       android:background="@drawable/detail_row" 
       android:layout_height="wrap_content" > 

        <ImageView 
         android:id="@+id/menuImage4" 
         android:layout_gravity="center_horizontal|center_vertical" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" /> 

        <TextView 
         android:id="@+id/textImage4" 
         android:layout_column="1" 
         android:layout_gravity="center_horizontal|center_vertical" 
         android:text="" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" /> 

      </LinearLayout> 


      <LinearLayout 
       android:orientation="vertical" 
       android:layout_width="0dp" 
       android:layout_weight="50" 
       android:padding="10dip" 
       android:layout_marginLeft="1dip" 
       android:layout_marginRight="1dip" 
       android:background="@drawable/detail_row" 
       android:layout_height="wrap_content" > 

        <ImageView 
         android:id="@+id/menuImage5" 
         android:layout_gravity="center_horizontal|center_vertical" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" /> 

        <TextView 
         android:id="@+id/textImage5" 
         android:layout_column="1" 
         android:layout_gravity="center_horizontal|center_vertical" 
         android:text="" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" /> 

      </LinearLayout> 

      <LinearLayout 
       android:orientation="vertical" 
       android:layout_width="0dp" 
       android:layout_weight="50" 
       android:padding="10dip" 
       android:layout_marginLeft="1dip" 
       android:background="@drawable/detail_row" 
       android:layout_height="wrap_content" > 

        <ImageView 
         android:id="@+id/menuImage6" 
         android:layout_gravity="center_horizontal|center_vertical" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" /> 

        <TextView 
         android:id="@+id/textImage6" 
         android:layout_column="1" 
         android:layout_gravity="center_horizontal|center_vertical" 
         android:text="" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" /> 

      </LinearLayout> 

    </LinearLayout> 

回答

7

應用相等的android:layout_weight(例如50)值在您現有代碼中的兩個「主 - 父」LinearLayouts上。這將使它們各佔據任何現有空閒空間的一半。

然後把你所有的代碼放在另一個新的LinearLayout中。這個新的應該被設置爲填充父寬度和高度。它的方向應該是垂直的。

這應該讓你走上前進的道路,但你可能需要調整你現有的代碼,使它看起來完全如你所願。

我運行使用此代碼短的測試:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_marginBottom="2dip" 
    android:layout_height="fill_parent"> 
    <LinearLayout android:orientation="horizontal" 
     android:layout_width="fill_parent" 
     android:layout_marginBottom="2dip" 
     android:layout_weight="50" 
     android:layout_height="wrap_content"> 

     <LinearLayout android:orientation="vertical" 
      android:layout_width="0dp" 
      android:layout_weight="50" android:padding="10dip" 
      android:layout_marginRight="1dip" 
      android:background="@drawable/icon" 
      android:layout_height="wrap_content"> 

      <ImageView android:id="@+id/menuImage1" 
       android:layout_gravity="center_horizontal|center_vertical" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" /> 

      <TextView android:id="@+id/textImage1" 
       android:layout_column="1" 
       android:layout_gravity="center_horizontal|center_vertical" 
       android:text="" android:layout_width="wrap_content" 
       android:layout_height="wrap_content" /> 

     </LinearLayout> 


     <LinearLayout android:orientation="vertical" 
      android:layout_width="0dp" 
      android:layout_weight="50" android:padding="10dip" 
      android:layout_marginLeft="1dip" 
      android:layout_marginRight="1dip" 
      android:background="@drawable/icon" 
      android:layout_height="wrap_content"> 

      <ImageView android:id="@+id/menuImage2" 
       android:layout_gravity="center_horizontal|center_vertical" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" /> 

      <TextView android:id="@+id/textImage2" 
       android:layout_column="1" 
       android:layout_gravity="center_horizontal|center_vertical" 
       android:text="" android:layout_width="wrap_content" 
       android:layout_height="wrap_content" /> 

     </LinearLayout> 

     <LinearLayout android:orientation="vertical" 
      android:layout_width="0dp" 
      android:layout_weight="50" android:padding="10dip" 
      android:layout_marginLeft="1dip" 
      android:background="@drawable/icon" 
      android:layout_height="wrap_content"> 

      <ImageView android:id="@+id/menuImage3" 
       android:layout_gravity="center_horizontal|center_vertical" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" /> 

      <TextView android:id="@+id/textImage3" 
       android:layout_column="1" 
       android:layout_gravity="center_horizontal|center_vertical" 
       android:text="" android:layout_width="wrap_content" 
       android:layout_height="wrap_content" /> 

     </LinearLayout> 

    </LinearLayout> 

    <LinearLayout android:orientation="horizontal" 
     android:layout_weight="50" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 

     <LinearLayout android:orientation="vertical" 
      android:layout_width="0dp" 
      android:layout_weight="50" android:padding="10dip" 
      android:layout_marginRight="1dip" 
      android:background="@drawable/icon" 
      android:layout_height="wrap_content"> 

      <ImageView android:id="@+id/menuImage4" 
       android:layout_gravity="center_horizontal|center_vertical" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" /> 

      <TextView android:id="@+id/textImage4" 
       android:layout_column="1" 
       android:layout_gravity="center_horizontal|center_vertical" 
       android:text="" android:layout_width="wrap_content" 
       android:layout_height="wrap_content" /> 

     </LinearLayout> 


     <LinearLayout android:orientation="vertical" 
      android:layout_width="0dp" 
      android:layout_weight="50" android:padding="10dip" 
      android:layout_marginLeft="1dip" 
      android:layout_marginRight="1dip" 
      android:background="@drawable/icon" 
      android:layout_height="wrap_content"> 

      <ImageView android:id="@+id/menuImage5" 
       android:layout_gravity="center_horizontal|center_vertical" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" /> 

      <TextView android:id="@+id/textImage5" 
       android:layout_column="1" 
       android:layout_gravity="center_horizontal|center_vertical" 
       android:text="" android:layout_width="wrap_content" 
       android:layout_height="wrap_content" /> 

     </LinearLayout> 

     <LinearLayout android:orientation="vertical" 
      android:layout_width="0dp" 
      android:layout_weight="50" android:padding="10dip" 
      android:layout_marginLeft="1dip" 
      android:background="@drawable/icon" 
      android:layout_height="wrap_content"> 

      <ImageView android:id="@+id/menuImage6" 
       android:layout_gravity="center_horizontal|center_vertical" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" /> 

      <TextView android:id="@+id/textImage6" 
       android:layout_column="1" 
       android:layout_gravity="center_horizontal|center_vertical" 
       android:text="" android:layout_width="wrap_content" 
       android:layout_height="wrap_content" /> 

     </LinearLayout> 

    </LinearLayout> 
</LinearLayout> 
5

,如果你有兩種觀點各有layout_weight = 1個layout_height =「FILL_PARENT」,那麼他們應該被共享的屏幕空間同樣

2

這裏是我是如何做到這對我來說:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:weightSum="100"> 
    <LinearLayout android:layout_weight="50" 
     android:layout_width="match_parent" 
     android:id="@+id/linearLayout1" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"></LinearLayout> 
</LinearLayout> 

http://www.hrupin.com/2012/02/how-to-set-view-width-height-in-percentage-of-parent-view-in-android

+0

這是真棒。簡短而甜美。非常感謝你。 –