ソフトキーバー


ソフトキーバー

あらゆる向きの画面でソフトキーを使用してデバイスを操作できるように、Fire OS 5ではAndroidのナビゲーションバーが画面の下部に表示されます。ナビゲーションバーの仕様の詳細については、ユーザーエクスペリエンスの仕様を参照してください。ナビゲーションバーはカスタマイズできません。

: 以前のバージョンのFire OSが搭載されているFireタブレットには、アプリ内のデフォルトの動作をある程度オーバーライドするソフトキーバーが用意されています。このカスタマイズ機能は、Fire OS 5以降は廃止されています。

画面のレイアウト

Fireタブレットのシステム機能にハードウェアベースのキーは用意されていないため、常にナビゲーションバーが表示されます。このため、アプリのユーザーインターフェイスがナビゲーションバーやステータスバーによって隠されないようにしてください。画面のレイアウトの詳細については、画面のレイアウトと解像度を参照してください。

android.util.DisplayMetricsからの戻り値は画面の解像度であり、ツールバーによって隠されていない領域の解像度ではありません。DisplayMetricsでクエリを実行してユーザーインターフェイスとグラフィックの適切なサイズを計算する際には、戻り値を調整してツールバーの分を補正する必要があります。

[戻る] ボタン

[戻る] ボタンは、ほとんどのアプリでデフォルトの動作で十分です。ユーザーを前のアクティビティに戻します。ただし、アクティビティでActivity.onBackPressed()メソッドをオーバーライドすることで、[戻る] ボタンの動作を変更できます。カスタマイズした動作が、ユーザーが [戻る] ボタンに期待している動作と一致するようにしてください。

@Override
public void onBackPressed() {
   // [戻る] ボタンを押したときに何らかの動作を行う
   return;
}

ソフトキーバーのボタン(Fire OS 4以前)

Fire OS 4以前では、ソフトキーバーには次のボタンがあります。

  • ホーム
  • Back(戻る)
  • オーバーフローメニュー
  • 検索
  • お気に入り(第1世代と第2世代のKindle Fireタブレットのみ)

アプリでオーバーフローメニューのメニュー項目を指定できます。アプリの [戻る] ボタンと [検索] ボタンの動作を、システムのデフォルト以外の動作に変更できます。

デバイスを縦向きから横向きに回転すると、ソフトキーバーが画面の右端に沿って縦向きに旋回します。詳細については、デバイスの向きの設定を参照してください。

[検索] ボタン(Fire OS 4以前)

ソフトキーバーの [検索] ボタンは、デフォルトでデバイスレベルの検索インターフェイスを表示します。オプションで、アクティビティでonSearchRequested() メソッドをオーバーライドすることで、検索方法をカスタマイズできます。アクションバーからのSearchViewの管理など、検索方法をカスタマイズする方法の詳細については、Androidドキュメントの検索インターフェイスを作成するを参照してください。

@Override
public boolean onSearchRequested () {
   // カスタマイズした [検索] ボタンの動作を追加する
   return true;
}

オーバーフローメニュー(Fire OS 4以前)

オーバーフローメニューを使用して、ソフトキーバーからアクセスできるコマンドをさらに追加できます。オーバーフローメニューには、次の種類のコマンドを設定してください。

  • アプリの設定
  • 現在のユーザーインターフェイスに適合しないタスク
  • アプリのグローバルアクション

オーバーフローメニューにアイテムを追加する際には、次のガイドラインに留意してください。

  • アイテムは6つまでにする。オーバーフローメニューはスクロールしません。
  • ラベルは短くする。テキスト文字列はラップされません。メニューは最大500 pxに拡大可能で、それを超えると切り捨てられます。
  • すべてのメニューアイテムのタイトルには大文字を使用する。

オーバーフローメニューの位置は、アプリでターゲットとするAndroid APIのレベルによって決まります。次のAndroidManifest.xmlの場合、第3世代および第2世代Kindle Fireタブレットのアプリでは、オーバーフローメニューはアクションバーに表示されます。

<uses-sdk
	android:minSdkVersion="15"
	android:targetSdkVersion="17" />
<application
	...
	android:theme="@android:style/Theme.DeviceDefault" />

targetSdkVersionが13以下の場合、オーバーフローメニューをソフトキーバーに表示できます。AndroidManifest.xmlで、次の例に示すテーマを指定します。

<uses-sdk
	android:minSdkVersion="8"
	android:targetSdkVersion="11" />
<application
	...
	android:theme="@android:style/Theme.NoTitleBar" />

オーバーフローメニューのボタンが押されたときにメニューをインスタンス化するには、アクティビティでActivity.onCreateOptionsMenu() メソッドをオーバーライドします。メニュー作成の詳細については、Android APIガイドのメニューを参照してください。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.my_menu, menu);
    return true;
}

警告: android.targetSdkVersionの値を14以降に設定することや、NoTitleBarにテーマを適用することは避けてください。これを行うと、以下に示すように、デバイスによってはメニューボタンが表示されないため、オーバーフローメニューにアクセスできなくなる場合があります。