アプリバーは、画面の上部または下部にあるコンテナで、ユーザーが主要な機能やナビゲーション アイテムにアクセスできるようにします。
タイプ |
デザイン |
目的 |
---|---|---|
トップ アプリバー | 画面上部に表示されます。 |
重要なタスクと情報にアクセスできます。通常、タイトル、コア アクション アイテム、特定のナビゲーション アイテムをホストします。 |
ボトム アプリバー | 画面の下部に表示されます。 |
通常、コア ナビゲーション アイテムが含まれます。フローティング アクション ボタンを使用するなど、他のアクションへのアクセスを許可する。 |
バージョンの互換性
この実装では、プロジェクトの minSDK を API レベル 21 以上に設定する必要があります。
依存関係
トップ アプリバーを実装する
次のコードは、スクロール動作を制御するさまざまな例を含め、4 種類のトップアプリバーの実装を示しています。
小さなトップ アプリバー
小さなトップ アプリバーを作成するには、TopAppBar
コンポーザブルを使用します。これは最もシンプルなトップ アプリバーです。この例ではタイトルのみが含まれています。
次の例では、TopAppBar
に scrollBehavior
の値を渡していないため、トップ アプリバーは内部コンテンツのスクロールに反応しません。
結果

中央揃えのトップ アプリバー
中央揃えのトップ アプリバーは、タイトルがコンポーネント内で中央に配置される点を除き、小型アプリバーと同じです。これを実装するには、専用の CenterAlignedTopAppBar
コンポーザブルを使用します。
この例では、enterAlwaysScrollBehavior()
を使用して scrollBehavior
に渡す値を取得します。ユーザーがスキャフォールドの内部コンテンツをスクロールすると、バーが閉じます。
結果

中程度のトップ アプリバー
中程度のトップ アプリバーでは、タイトルが追加アイコンの下に配置されます。作成するには、MediumTopAppBar
コンポーザブルを使用します。
前のコードと同様に、この例では enterAlwaysScrollBehavior()
を使用して、scrollBehavior
に渡す値を取得します。
結果
enterAlwaysScrollBehavior
からのスクロール動作を示す中程度のトップ アプリバー。大きなトップ アプリバー
大きなトップ アプリバーは中程度のアプリバーに似ていますが、タイトルとアイコンの間のパディングが大きく、画面全体で占有するスペースも大きくなります。作成するには、LargeTopAppBar
コンポーザブルを使用します。
この例では、exitUntilCollapsedScrollBehavior()
を使用して scrollBehavior
に渡す値を取得します。ユーザーがスキャフォールドの内部コンテンツをスクロールするとバーは閉じますが、ユーザーが内部コンテンツの最後までスクロールするとバーは開きます。
結果

ボトム アプリバーを実装する
ボトム アプリバーを作成するには、トップ アプリバー コンポーザブルに似ている BottomAppBar
コンポーザブルを使用します。
次のキーパラメータにコンポーザブルを渡します。
actions
: バーの左側に表示される一連のアイコン。通常、これらは特定の画面の主要なアクションまたはナビゲーション アイテムです。floatingActionButton
: バーの右側に表示されるフローティング アクション ボタン。
結果

要点
- 通常、アプリバーは
Scaffold
コンポーザブルに渡します。このコンポーザブルには、アプリバーを受け取るための特定のパラメータがあります。 上部アプリバーの実装に使用するコンポーザブルは、次の主要なパラメータを共有します。
title
: アプリバー全体に表示されるテキスト。navigationIcon
: ナビゲーションのメインアイコン。アプリバーの左側に表示されます。actions
: アプリバーの右側に表示される、主要なアクションにユーザーがアクセスするためのアイコン。scrollBehavior
: トップ アプリバーがスキャフォールドの内部コンテンツのスクロールにどのように応答するかを決定します。colors
: アプリバーの表示方法を決定します。
ユーザーがスキャフォールドの内部コンテンツをスクロールしたときに、アプリバーがどのように応答するかを制御できます。これを行うには、
TopAppBarScrollBehavior
のインスタンスを作成し、トップ アプリバーのscrollBehavior
パラメータに渡します。TopAppBarScrollBehavior
には次の 3 種類があります。enterAlwaysScrollBehavior
: ユーザーがスキャフォールドの内部コンテンツを上に引っ張ると、トップ アプリバーが閉じます。ユーザーが内部コンテンツを下に引っ張ると、アプリバーが展開されます。exitUntilCollapsedScrollBehavior
:enterAlwaysScrollBehavior
に似ていますが、ユーザーがスキャフォールドの内部コンテンツの最後まで到達すると、アプリバーも拡張されます。pinnedScrollBehavior
: アプリバーは移動せず、スクロールに反応しません。
このガイドを含むコレクション
このガイドは、Android 開発の幅広い目標を網羅する、厳選されたクイックガイド コレクションの一部です。
