合計 5 項目のオプション メニューを作成したいと思います。ただし、2 つのアイテムを 1 つの行に並べて配置し、他の 3 つのアイテムをそれぞれ別の行に配置したいと考えています。
独自の行に個別に存在するアイテムを追加することは、.....を使用して簡単です。
しかし、問題は、1 行に 2 つを並べて配置する方法です。
合計 5 項目のオプション メニューを作成したいと思います。ただし、2 つのアイテムを 1 つの行に並べて配置し、他の 3 つのアイテムをそれぞれ別の行に配置したいと考えています。
独自の行に個別に存在するアイテムを追加することは、.....を使用して簡単です。
しかし、問題は、1 行に 2 つを並べて配置する方法です。
残念ながら、真のオプション メニュー ( によって作成されたものonCreateOptionsMenu(Menu menu)
) は、ノードmenu
を持つ単純な XML であるリソースを使用しますitem
。Dialog
またはを使用してカスタム メニューを作成すると、PopupWindow
文字どおり好きなことを行うことができます。その場合、通常の要素が点在する横並びの要素を含むLinearLayout
いくつかの水平なs を持つ垂直のレイアウトを作成します。LinearLayout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/Button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
<Button
android:id="@+id/Button02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
</LinearLayout>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
</LinearLayout>
</LinearLayout>
独自の行に存在するアイテムには垂直 LinearLayout を使用し、並んで存在する必要がある 2 つのアイテムには水平 LinearLayout を使用します。
xml では、LinearLayout 属性はandroid:orientation="vertical"
または"horizontal"
を使用しているかによって異なります。