最も基本的な形式では、アクションバーの片側にアクティビティのタイトルが表示され、もう片側にオーバーフロー メニューが表示されます。この基本的な形式であっても、アプリバーはユーザーに有用な情報を提供し、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>
要素を設定します。これらのテーマのいずれかを使用すると、アプリはネイティブの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()
を呼び出します。