0

ICS でアクション バーを作成しています。間隔があるため、アイコンのみが表示されます。しかし、電話のメニューボタンが押された場合、アクションバーをテキスト付きのコンテキストのようなメニューとして提供したいと思います。

どうすればこれを達成できますか?

Atmには3つのアイコンがあります。そのうちの 2 つがアクション バーの上部に表示されます。メニューの電話ボタンを押すと、3番目がコンテキストメニューとして表示されます! でも、3つとも揃えたいです。

class MyActivity extends SherlockFragmentActivity {
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getSupportMenuInflater();

        /* IMPLEMENTATION HERE */
    }
}
4

1 に答える 1

1

Menusのドキュメントから:

メニュー項目がアクション項目として表示されない場合、システムはそれをオーバーフロー メニューに配置します。

したがって、アクション バーとオーバーフロー メニューの両方に同じアクション アイテムを表示することはできません。あなたができることはこれです:

  1. どのメニュー項目がアクション バーに適合し、どのメニュー項目が適合しないかを (実行時に) チェックします。

  2. アクション バーに表示されるメニュー項目ごとに、新しい同一のメニュー項目を動的に作成newMenuItem.setShowAsAction(SHOW_AS_ACTION_NEVER)し、オーバーフロー メニュー (テキスト付き) に確実に表示されるように を呼び出します。

私の意見では、これは Android のメニュー デザイン標準に反するものであり、お勧めしません。あなたの目には、より良いデザインの選択肢のように見えるかもしれませんが、ユーザーはアプリが Android プラットフォーム全体で一貫していることを期待しています。メニューを奇妙な方法で操作すると、混乱を招き、結果としてユーザー エクスペリエンスに悪影響を与える可能性があります。

于 2012-06-05T22:30:57.177 に答える