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"
と適切な名前空間。