2013-06-04 10 views
5

私は電卓のように、各行に4つのボタンがあり、5つの行があります。私はLinearLayoutを使ってこれらの各行を作成しました。 LinearLayoutの各ボタンでandroid:layout_weight="1"を使用して、各行の幅を完全に埋めることができました。しかし、私はこの方法で垂直空間を埋める方法を知らない。私はここで最初の行のコードを共有するように5つの行の後に正常XDPIスクリーン用底に残っている空間(ネクサス4)アンドロイドで垂直に均等にボタン/レイアウトを張るには?

<LinearLayout 
     android:id="@+id/first_row" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/entry"> 

    <Button 
      android:id="@+id/seven" 
      android:layout_width="0dip" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" 
      android:text="7" 
      android:textColor="@color/Blue_ICS" 
      android:textSize="@dimen/button_text_size" 
      /> 

    <Button 
      android:id="@+id/eight" 
      android:layout_width="0dip" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" 
      android:text="8" 
      android:textColor="@color/Blue_ICS" 

      android:textSize="@dimen/button_text_size"/> 

    <Button 
      android:id="@+id/nine" 
      android:layout_width="0dip" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" 
      android:text="9" 

      android:textColor="@color/Blue_ICS" 
      android:textSize="@dimen/button_text_size"/> 

    <Button 
      android:id="@+id/plus" 
      android:layout_width="0dip" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" 
      android:text="+" 
      android:textColor="@color/Blue_ICS" 
      android:textSize="@dimen/button_text_size"/> 
</LinearLayout> 

があるのレイアウトが長すぎると、残りの行も同様です。

+0

等高さで行を塗りつぶしますか? –

+0

'LinearLayout'高さ属性を変更しようとしましたか?:android:layout_height =" match_parent "' –

+0

チェックアウト[このリンク](http://stackoverflow.com/a/8105131/2345913) – CRUSADER

答えて

7

に役立ちます。属性stretchColumnsを使用すると、ウェイトを使用しなくても同じ幅のすべての列を作成できます。この方法で、テーブルローの高さを処理するためにウェイトを使用できます。

以下の例では、電卓画面のような結果を表示するためのスペース(空のLinearLayout)を追加しました。私はこれがあなたが探しているものだと願っています! (あなたがIDを変更する必要があります)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/outerLayout" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" > 

<LinearLayout 
    android:id="@+id/screenLayout" 
    android:layout_width="fill_parent" 
    android:layout_height="150dp" 
    android:orientation="vertical"></LinearLayout> 

<TableLayout 
    android:id="@+id/myLayout" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_below="@+id/screenLayout" 
    android:stretchColumns="*" > 

    <TableRow 
     android:id="@+id/first_row" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" > 

     <Button 
      android:id="@+id/seven" 
      android:layout_width="0dip" 
      android:layout_height="fill_parent" 
      android:text="7" /> 

     <Button 
      android:id="@+id/eight" 
      android:layout_width="0dip" 
      android:layout_height="fill_parent" 
      android:text="8" /> 

     <Button 
      android:id="@+id/nine" 
      android:layout_width="0dip" 
      android:layout_height="fill_parent" 
      android:text="9" /> 

     <Button 
      android:id="@+id/plus" 
      android:layout_width="0dip" 
      android:layout_height="fill_parent" 
      android:text="+" /> 
    </TableRow> 

    <TableRow 
     android:id="@+id/first_row" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" > 

     <Button 
      android:id="@+id/seven" 
      android:layout_width="0dip" 
      android:layout_height="fill_parent" 
      android:text="4" /> 

     <Button 
      android:id="@+id/eight" 
      android:layout_width="0dip" 
      android:layout_height="fill_parent" 
      android:text="5" /> 

     <Button 
      android:id="@+id/nine" 
      android:layout_width="0dip" 
      android:layout_height="fill_parent" 
      android:text="6" /> 

     <Button 
      android:id="@+id/plus" 
      android:layout_width="0dip" 
      android:layout_height="fill_parent" 
      android:text="-" /> 
    </TableRow> 

    <TableRow 
     android:id="@+id/first_row" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" > 

     <Button 
      android:id="@+id/seven" 
      android:layout_width="0dip" 
      android:layout_height="fill_parent" 
      android:text="1" /> 

     <Button 
      android:id="@+id/eight" 
      android:layout_width="0dip" 
      android:layout_height="fill_parent" 
      android:text="2" /> 

     <Button 
      android:id="@+id/nine" 
      android:layout_width="0dip" 
      android:layout_height="fill_parent" 
      android:text="3" /> 

     <Button 
      android:id="@+id/plus" 
      android:layout_width="0dip" 
      android:layout_height="fill_parent" 
      android:text="*" /> 
    </TableRow> 

    <TableRow 
     android:id="@+id/first_row" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" > 

     <Button 
      android:id="@+id/seven" 
      android:layout_width="0dip" 
      android:layout_height="fill_parent" 
      android:text="0" /> 

     <Button 
      android:id="@+id/eight" 
      android:layout_width="0dip" 
      android:layout_height="fill_parent" 
      android:text="," /> 

     <Button 
      android:id="@+id/nine" 
      android:layout_width="0dip" 
      android:layout_height="fill_parent" 
      android:text="/" /> 

     <Button 
      android:id="@+id/plus" 
      android:layout_width="0dip" 
      android:layout_height="fill_parent" 
      android:text="=" /> 
    </TableRow> 
</TableLayout> 

</RelativeLayout> 

結果:上の

<LinearLayout 
     android:id="@+id/first_row" 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1"> 
     ... 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/first_row" 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1"> 
     ... 
    </LinearLayout> 
    ... 

ので:

enter image description here

+0

これはレイアウト全体を等しくするのに役立ちます。ありがとう – Vins

+0

お手伝いをしてうれしい! :) –

2

親がLinearLayoutでもある場合は、あなたの行にandroid:layout_weight="1"も登録できます。

<!--parent--> 
<LinearLayout 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    android:orientation="vertical"> 

    <include 
     android:layout="@layout/myrow" 
     android:layout_height="0dp" 
     android:layout_width="match_parent" 
     android:layout_weight="1"/> 

    <include 
     android:layout="@layout/myrow" 
     android:layout_height="0dp" 
     android:layout_width="match_parent" 
     android:layout_weight="1"/> 

    <include 
     android:layout="@layout/myrow" 
     android:layout_height="0dp" 
     android:layout_width="match_parent" 
     android:layout_weight="1"/> 

    <include 
     android:layout="@layout/myrow" 
     android:layout_height="0dp" 
     android:layout_width="match_parent" 
     android:layout_weight="1"/> 

    <include 
     android:layout="@layout/myrow" 
     android:layout_height="0dp" 
     android:layout_width="match_parent" 
     android:layout_weight="1"/> 


</LinearLayout> 

テストしませんでしたが動作するはずです。

・ホープこれはあなたがのTableRowのためにすべてのあなたのLinearLayoutを交換し、TableLayoutを使用する必要があります

0

これを試してみてください。 これらをすべて垂直方向の線形レイアウトにラップしてください

0

次のように試してみてください(疑似コード):(論理が理解できたらうれしいです...これはどの画面の濃度でもボタンを伸ばします)

 <linearlayout=Outer 
      horizontal 
      weightSum=5> 
       <sub linearLayout=innerRow1 
        vertical 
        weightSum=1> 
        <enter all the buttons with weight as ".25"> 
       </sub innerRow1> 
       <sub linearLayout=innerRow2 
        vertical 
        weightSum=1> 
        <enter all the buttons with weight as ".25"> 
       </sub innerRow2> 
       <sub linearLayout=innerRow3 
        vertical 
        weightSum=1> 
        <enter all the buttons with weight as ".25"> 
       </sub innerRow3> 
      <sub linearLayout=innerRow4 
        vertical 
        weightSum=1> 
        <enter all the buttons with weight as ".25"> 
       </sub innerRow4> 
      <sub linearLayout=innerRow5 
        vertical 
        weightSum=1> 
        <enter all the buttons with weight as ".25"> 
       </sub innerRow5> 
+0

私のルートレイアウトはRelativeLayoutなので、私は考えることができません。 – Vins

+0

あなたはlayout_weightで試してみるか、この線形レイアウトをRelativeLayout @vinsで囲むことができます... – amalBit

関連する問題