最も基本的な形式では、アクションバーの片側にアクティビティのタイトルが表示され、もう片側にオーバーフロー メニューが表示されます。この基本的な形式であっても、アプリバーはユーザーに有用な情報を提供し、Android アプリのルック アンド フィールを統一します。
![Now in Android アプリのアプリバーを示す画像](https://developer.android.google.cn/static/images/ui/notifications/actions_actionbar.png?authuser=7&hl=ja)
デフォルトのテーマを使用するすべてのアクティビティには、アプリバーとして 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>
要素を設定します。これらのテーマのいずれかを使用すると、アプリはネイティブの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()
を呼び出します。