Xamarin.Android LinearLayout
LinearLayout
は ViewGroup
であり、View
子要素を垂直または水平の直線方向に表示します。
LinearLayout
の使い過ぎには注意する必要があります。
複数の LinearLayout
を入れ子にし始める場合は、代わりに RelativeLayout
に置き換える必要があることです。
HelloLinearLayout という名前の新しいプロジェクトを開始します。
Resources/Layout/Main.axml を開き、次を挿入します。
<?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" >
<LinearLayout
android:orientation= "horizontal"
android:layout_width= "match_parent"
android:layout_height= "match_parent"
android:layout_weight= "1" >
<TextView
android:text= "red"
android:gravity= "center_horizontal"
android:background= "#aa0000"
android:layout_width= "wrap_content"
android:layout_height= "match_parent"
android:layout_weight= "1" />
<TextView
android:text= "green"
android:gravity= "center_horizontal"
android:background= "#00aa00"
android:layout_width= "wrap_content"
android:layout_height= "match_parent"
android:layout_weight= "1" />
<TextView
android:text= "blue"
android:gravity= "center_horizontal"
android:background= "#0000aa"
android:layout_width= "wrap_content"
android:layout_height= "match_parent"
android:layout_weight= "1" />
<TextView
android:text= "yellow"
android:gravity= "center_horizontal"
android:background= "#aaaa00"
android:layout_width= "wrap_content"
android:layout_height= "match_parent"
android:layout_weight= "1" />
</LinearLayout>
<LinearLayout
android:orientation= "vertical"
android:layout_width= "match_parent"
android:layout_height= "match_parent"
android:layout_weight= "1" >
<TextView
android:text= "row one"
android:textSize= "15pt"
android:layout_width= "match_parent"
android:layout_height= "wrap_content"
android:layout_weight= "1" />
<TextView
android:text= "row two"
android:textSize= "15pt"
android:layout_width= "match_parent"
android:layout_height= "wrap_content"
android:layout_weight= "1" />
<TextView
android:text= "row three"
android:textSize= "15pt"
android:layout_width= "match_parent"
android:layout_height= "wrap_content"
android:layout_weight= "1" />
<TextView
android:text= "row four"
android:textSize= "15pt"
android:layout_width= "match_parent"
android:layout_height= "wrap_content"
android:layout_weight= "1" />
</LinearLayout>
</LinearLayout>
この XML を慎重に調べてください。 ルートの LinearLayout
があり、その向きを垂直に定義しています。すべての View
子要素 (2 つあります) は垂直に積み重ねられます。 最初の子要素は 水平方向を使用する別の LinearLayout
であり、2 つ目の子要素は 垂直方向を使用する LinearLayout
です。 これらの入れ子になった LinearLayout
ごとに、いくつかの TextView
要素が含まれており、それらは親 LinearLayout
によって定義された方法で相互に向けられます。
ここで HelloLinearLayout.cs を開き、Resources/Layout/Main.axml レイアウトが読み込まれることを確認します。OnCreate()
メソッド:
protected override void OnCreate (Bundle savedInstanceState)
{
base.OnCreate (savedInstanceState);
SetContentView (Resource.Layout.Main);
}
SetContentView(int)
メソッドは、リソース ID で指定された Activity
用にレイアウト ファイルを読み込みます。Resources.Layout.Main
は Resources/Layout/Main.axml レイアウト ファイルを参照します。
アプリケーションを実行します。 次のように表示されます。
XML 属性が各ビューの動作をどのように定義するかに注目してください。 android:layout_weight
のさまざまな値を試して、各要素の重みに基づいてスクリーンの領域がどのように配分されるかを確認してみてください。 詳しくは、一般的なレイアウト オブジェクトのドキュメントで、どのように LinearLayout
が android:layout_weight
属性を処理するかを参照してください。
リファレンス
このページの一部は、Android オープンソース プロジェクトによって作成および共有された作業生産物に基づいて変更されており、Creative Commons 2.5 Attribution License に記載されている条件に従って使用されています。