最も基本的な形式では、アクションバーの片側にアクティビティのタイトルが表示され、反対側にオーバーフロー メニューが表示されます。この基本的な形式であっても、アプリバーは有用な情報をユーザーに提供し、Android アプリのデザインに一貫性をもたらします。
デフォルトのテーマを使用するすべてのアクティビティに、アプリバーとして ActionBar
が表示されます。アプリバーの機能は、さまざまな Android リリースを通じてネイティブ ActionBar
に追加されています。その結果、ネイティブ ActionBar
の動作は、デバイスが使用している Android のバージョンによって異なります。
一方、AndroidX AppCompat ライブラリのバージョン Toolbar
には機能が追加されています。つまり、これらの機能は、AndroidX ライブラリを使用するデバイスで使用できます。
このため、アクティビティのアプリバーを実装するには、AndroidX ライブラリの Toolbar
クラスを使用します。AndroidX ライブラリのツールバーを使用すると、さまざまなデバイスでアプリの動作が一貫するようになります。
アクティビティへのツールバーの追加
Toolbar
をアクティビティのアプリバーとして設定する手順は以下のとおりです。
- AndroidX の概要の説明に沿って、AndroidX ライブラリをプロジェクトに追加します。
- アクティビティが
AppCompatActivity
を拡張していることを確認します。Kotlin
class MyActivity : AppCompatActivity() { // ... }
Java
public class MyActivity extends AppCompatActivity { // ... }
- アプリ マニフェストで、次の例に示すように、AppCompat の
NoActionBar
テーマのいずれかを使用するように<application>
要素を設定します。これらのテーマのうちの 1 つを使用すると、アプリがネイティブActionBar
クラスを使用してアプリバーを提供しなくなります。<application android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
Toolbar
をアクティビティのレイアウトに追加します。たとえば、次のレイアウト コードではToolbar
が追加され、アクティビティの上に浮いているように表示されます。<androidx.appcompat.widget.Toolbar android:id="@+id/my_toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" android:elevation="4dp" android:theme="@style/ThemeOverlay.AppCompat.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
アプリバーの高さに関する推奨事項については、マテリアル デザインの仕様をご覧ください。
ツールバーをアプリバーとして使用するため、ツールバーをアクティビティのレイアウトの上部に配置します。
- 次の例に示すように、アクティビティの
onCreate()
メソッドでアクティビティのsetSupportActionBar()
メソッドを呼び出し、アクティビティのツールバーを渡します。このメソッドは、ツールバーをアクティビティのアプリバーとして設定します。Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_my) // The Toolbar defined in the layout has the id "my_toolbar". setSupportActionBar(findViewById(R.id.my_toolbar)) }
Java
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar); setSupportActionBar(myToolbar); }
これで、アプリに基本的なアクションバーが追加されました。デフォルトでは、アクションバーにはアプリ名とオーバーフロー メニューが含まれます。オーバーフロー メニューには、最初は [設定] アイテムが含まれます。アクションの追加と処理で説明したように、追加のアクションをアクションバーとオーバーフロー メニューに追加できます。
アプリバー ユーティリティ メソッドを使用する
ツールバーをアクティビティのアプリバーとして設定すると、AndroidX ライブラリの ActionBar
クラスによって提供されるユーティリティ メソッドにアクセスできます。このアプローチを使用すると、アプリバーの表示と非表示の切り替えなど、便利な機能を実装できます。
ActionBar
ユーティリティ メソッドを使用するには、アクティビティの getSupportActionBar()
メソッドを呼び出します。このメソッドは、AppCompat の ActionBar
オブジェクトへの参照を返します。参照を取得したら、任意の ActionBar
メソッドを呼び出してアプリバーを調整できます。たとえば、アプリバーを非表示にするには、ActionBar.hide()
を呼び出します。