2011-07-15 13 views
3

本質的に3x2グリッドを模倣するサブレイアウトを含むLinearLayoutがあります。各サブレイアウトは、画面全体で(幅で)等しい量のスペースを占有します。さて、私は、画面の50%を占めるように、2列の副レイアウトを高さ方向に伸ばしたいと考えています。私はウェイトを使って遊んでみましたが、幅のために使用されている既存のウェイトを台無しにしないで、既存のレイアウトコードを変更する方法はわかりません。誰か助けてくれますか?ありがとう!ここに私のレイアウトコードです:あなたは2つのビューがある場合レイアウトが画面の50%を占めるようにAndroidのストレッチレイアウトの高さを調整する

<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

が等しいアンドロイドを適用画面スペースを共有する必要があります:layout_weightを(例えば既存のコード内の2つの "メイン - 親" LinearLayouts上の50の値。これにより、それぞれ既存の空き領域の半分を占めるようになります。

次に、すべてのコードを別の新しいLinearLayoutに配置します。この新しいものは、幅と高さの両方でfill-parentに設定する必要があります。その向きは垂直でなければなりません。

これはあなたを助けてくれるはずですが、既存のコードを微調整して、必要なだけ正確に表示する必要があります。

私はこのコードを使用して短いテストを実行します。ここでは

<?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

素晴らしいすなわち。短くて甘い。どうもありがとうございました。 –