次の方法で共有


Xamarin.Android LinearLayout

LinearLayoutViewGroup であり、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.MainResources/Layout/Main.axml レイアウト ファイルを参照します。

アプリケーションを実行します。 次のように表示されます。

Screenshot of app first LinearLayout arranged horizontally, second vertically

XML 属性が各ビューの動作をどのように定義するかに注目してください。 android:layout_weight のさまざまな値を試して、各要素の重みに基づいてスクリーンの領域がどのように配分されるかを確認してみてください。 詳しくは、一般的なレイアウト オブジェクトのドキュメントで、どのように LinearLayoutandroid:layout_weight 属性を処理するかを参照してください。

リファレンス

このページの一部は、Android オープンソース プロジェクトによって作成および共有された作業生産物に基づいて変更されており、Creative Commons 2.5 Attribution License に記載されている条件に従って使用されています。