Siddharth Lele が指摘したように、実際のアクション バーと同じように動作するために、最後の ABS バージョンでは削除されました。したがって、一見すると、このメニューの表示をあきらめるのが最善の選択肢です。
ただし、一部のデバイスでは画面に表示され、他のデバイスでは表示されないオーバーフロー メニューは、Android の Action Bar の大きな設計上の欠陥です。理由は次のとおりです。
ハードウェア メニュー キーを備えたデバイスでは、メニューはアクション バーに表示されません。最近のデバイスでは、HW ボタンの数を最小限に減らす傾向があります。これは、よりユーザーフレンドリーであると考えられているためです (また、iPhone にはボタンしかないため、このデザインをコピーしています)。他のメーカーにはメニューボタンが含まれていますが、それを押さない限り隠されています(はい、ライトが必要なくなったときに点灯します.
この意味をよりよく理解するために、例を見てみましょう:
ユーザーA
はメニュー キーのあるデバイスを持っています。彼はお気に入りのメール クライアントを使用しています。メール アカウントを設定するためのオプションは、通常のオプション (ヘルプ、概要など) とともに、オーバーフロー メニューに配置されます。彼は 2 つ目のアカウントを追加したいと考えていますが、このメニューにアクセスする方法がわかりません。彼が何をすべきかを理解するのに役立つ情報が画面にありません。そこでユーザーは、このメール クライアントも使用しているA
友人に尋ねます。B
ユーザーB
は最新の Nexus N+1 Google フォンを使用しており、デバイスに HW メニュー キーがないため、アクション バーにオーバーフロー アイコンが表示されます。彼はA
、このメニューを開いて 2 つ目のアカウントを追加する方法を示しています。ユーザーA
同じバージョンのアプリを使用しているため、完全に混乱しています。欲求不満でA
、問題は彼の携帯電話が古すぎることだと思うかもしれません。B
も同様に混乱しています。
この時点で、あなたは両方A
を考えているかもしれませんがB
、スマートフォンの使い方がわからない愚か者です。しかし、デスクトップ アプリとは異なり、大多数のスマートフォン ユーザーは自分のデバイスについて基本的なことしか知りません。彼らの以前の電話は、単純なファームウェアを備えたキーパッド デバイスであった可能性があります。電池が切れて交換を求めて店に行ったが、在庫がなかった。彼らはインターネットで注文することもできましたが、新しい電話を購入するよりも高価でした. タッチスクリーン対応の電話が販売されたのは、それが今日の電話のあり方だからです。今、彼らは本格的な OS を搭載した小さなコンピューターに直面しなければなりません。さらに悪いことに、電話には「クイック スタート ガイド」しか付属しておらず、完全なマニュアルを入手するには、インターネットから PDF をダウンロードする必要があります。何だと思う?彼らはしません。
モバイル アプリを開発している場合は、ユーザーがコンピューター、OS、または同様のアプリについて何も知らない可能性があると想定する必要があります。人々が GUI の使い方を学び、覚えられるように、GUI はどのデバイスでも同じように見えるようにする必要があります。アクション バーの設計者を責めないでください。ユーザーがオプション メニューに移動する方法を気に入っA
たり、知らない場合は、そもそもあなたの責任です。そのため、オプション画面を常に表示する手段を含める必要がありました。B
戻るキーでも同様のことが起こります。一部のデバイスには HW バック キーがある場合がありますが、新しいデバイスには通常ありません。しかし、アプリに戻ることができるときはいつでも、アクション バーにその矢印のようなボタンが表示されていますよね? はい、1 つのボタンが「ナビゲーション ツリー」に戻り、もう 1 つのボタンが「時間をさかのぼる」ことは知っていますが、これは別の設計上の欠陥でもあります。画面にこのボタンがあり、HW ボタンも使用できますが、これはオプションです。オーバーフロー メニューでも同じことを行う必要がありました。
したがって、(私のように) これが重要なボタンだと思う場合は、あきらめないでください。通常のメイン オプション メニューを提供し、関連するサブメニューを追加します。それをアクション ボタンにして、説明的なアイコン、または「MENU」のようなテキストの説明を割り当てます。次のいずれかのドローアブルを使用して、オーバーフロー メニュー アイコンを模倣することもできます。
// For ActionBarSherlock
abs__ic_menu_moreoverflow_normal_holo_dark.png
abs__ic_menu_moreoverflow_normal_holo_light.png
// For ActionBar
ic_menu_moreoverflow_normal_holo_light.png
ic_menu_moreoverflow_normal_holo_dark.png
さらに、画像をコピーしてプロジェクトの res フォルダーに貼り付けます。ABS の将来のリリースまたは ActionBar の次の実装にそれらが含まれるかどうかはわかりません。