0

2 つの LinearLayouts 分割 %50/%50 がある場合、すべて問題ありません。重みは 1 と 1 です。一番上の LinearLayout 内に TextView を追加するとすぐに、そのレイアウトが引き伸ばされます。wrap_content重みに関しては、ドキュメントに記載されているとおりに使用します。

ご覧のとおり、赤と緑は均等に分割され、灰色の背景のテキストは赤いボックス内にある必要があります。コードは次のとおりです。

<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#ff0000"
>
 <TextView
 android:text="@string/hello"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:background="#cccccc"
 android:textColor="#000000"/>      
</LinearLayout>

<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#00ff00"
>
</LinearLayout>    

次のように「親を埋める」に切り替えると、実際には機能しますが、別の問題が発生します。これがコードです(これまでのところとても良いです):

 <LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:background="#ff0000"
    >
     <TextView
     android:text="@string/hello"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:background="#cccccc"
     android:textColor="#000000"/>      
    </LinearLayout>

 <LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:background="#00ff00"
    >
    </LinearLayout>

したがって、上記を見ると、使用を余儀なくさfill_parentれ、問題を修正したように思えますが、使用している場合の問題は次のとおりfill_parentです (問題を表示するためだけに TextView を取り出しましたが、TextView は問題を解決しません) :

<?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_height="fill_parent"
>

 <LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="3"
    android:background="#ff0000"
    >
    </LinearLayout>


 <LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="2"
    android:background="#00ff00"
    >
    </LinearLayout> 
</LinearLayout>

ご覧のとおり、重み 3 (上の赤) と 2 (下の緑) を割り当てていますが、実際にはこれらが反転します。赤が 2 になり、下が 3 になります。ピクセルを測定するだけです。

3つのコードの結果は次のとおりです。

明確にするために、レイアウトがこれ(一番上のレイアウト)内にラップされるたびに:

android:layout_width="fill_parent"
android:layout_height="fill_parent"

XMLversion="1.0" encoding="utf-8"と適切な名前空間。

4

2 に答える 2

1

結合された子ビューの重みは合計で 1 になる必要があります。.3、.3、.4 = 1、または 100%

于 2010-12-19T02:20:59.227 に答える
0

一番下のレイアウトに子ビューを追加してみてください。

于 2010-08-21T03:13:12.120 に答える