最も基本的な形式では、アクション バーは、片側にアクティビティのタイトル、もう片側にオーバーフロー メニューを表示します。 この単純な形式であっても、アプリ バーはユーザーに有益な情報を提供し、Android アプリに一貫した外観と感触を与えるのに役立ちます。 Android 3.0 (API レベル 11) 以降、デフォルトのテーマを使用するすべてのアクティビティは、アプリ バーとして ActionBar を備えています。 しかし、アプリ バーの機能は、さまざまな Android リリースでネイティブの ActionBar に徐々に追加されてきました。 その結果、ネイティブのActionBarは、端末が使用するAndroidシステムのバージョンによって異なる動作をするようになりました。 それに対して、最新の機能はサポートライブラリの Toolbar に追加され、サポートライブラリを使用できるすべてのデバイスで使用できます。
このため、アクティビティのアプリバーを実装する場合は、サポートライブラリの Toolbar クラスを使用する必要があります。 サポート ライブラリのツールバーを使用すると、アプリが最も広い範囲のデバイスで一貫した動作をすることを保証できます。 たとえば、Toolbar ウィジェットは Android 2.1 (API レベル 7) 以降を実行しているデバイスでマテリアル デザイン エクスペリエンスを提供しますが、ネイティブ アクション バーは、デバイスが Android 5.X を実行していない限りマテリアル デザインをサポートしません。
Add a Toolbar to an Activity
These steps describe how to set up a Toolbaras your activity’s app bar:
- Add the v7 appcompat support library to your project as described in Support Library Setup.にあるように、プロジェクトに appcompat サポート ライブラリーを追加します。
- Make the activity extends
AppCompatActivity:Kotlin
class MyActivity : AppCompatActivity() { // ...}Java
public class MyActivity extends AppCompatActivity { // ...}Note: Make this change for every activity in your app that uses a
Toolbaras an app bar. - アプリ マニフェストで、
<application>要素を appcompat のNoActionBarテーマのいずれかを使用するように設定します。 これらのテーマの 1 つを使用すると、アプリ バーを提供するためにネイティブのActionBarクラスが使用されなくなります。 たとえば、以下のようになります。<application android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
- アクティビティのレイアウトに
Toolbarを追加します。 たとえば、次のレイアウト コードはToolbarを追加し、アクティビティの上に浮かんでいるように見えるようにします。<android.support.v7.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"/>
アプリ バーの昇降に関する推奨事項については、Material Design 仕様を参照してください。
ツール バーをアプリ バーとして使用しているため、アクティビティのレイアウトの上部に配置します。
- アクティビティの
onCreate()メソッドで、アクティビティのsetSupportActionBar()メソッドを呼び出し、アクティビティのツールバーを渡します。 このメソッドは、ツールバーをアクティビティのアプリバーとして設定します。 例:Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_my) // Note that the Toolbar defined in the layout has the id "my_toolbar" setSupportActionBar(findViewById(R.id.my_toolbar))}Java
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar); setSupportActionBar(myToolbar);}
これであなたのアプリは基本アクションバーを持つようになりました。 デフォルトでは、アクション バーには、アプリの名前とオーバーフロー メニューだけが表示されます。 オプションメニューには、最初は「設定」項目だけが含まれています。 アクションの追加と処理」で説明するように、アクション バーとオーバーフロー メニューにさらにアクションを追加することができます。 このアプローチでは、アプリ バーの非表示や表示など、多くの便利なことを行うことができます
。