18

アクション バーに問題があり、検索バーを展開可能にするために検索ビューを設定しようとしました。

ifRoomこれは、検索アイコンがクリックされたときに検索フィールドがすべてのスペースを占めるようにするために、オプションを使用して他のすべてのメニュー項目を設定する必要があったことを除けば、うまく機能しています。

この部分もうまく機能しましたが、あまりにも多くのメニュー項目がメニュー オーバーフローに押し込まれ、垂直画面 (検索バーを含む) に 2 つのアイコンしか残っていませんでした。

5 つのメニュー項目を持つ別のアクティビティで別のテストを行いました。

  1. 最初のケースでは、それらすべてをandroid:showAsAction="always"
  2. 2 番目のケースでは、それらすべてを「android:showAsAction="ifRoom"」で設定しました。

結果は次のとおりです。

ケース 1:

常にケース

ケース 2:

ifRoom ケース

ifRoomを使用すると、実際には 5 つのアイコンで簡単に場所を埋めることができるのに、2 つのアイコンしか表示されないのはなぜですか?

このため、検索ビュー項目の横にあるメニュー項目は 1 つしかありません...

ありがとう!

4

3 に答える 3

14

その設計上の決定のように見えます:

ジェイク・ウォートン 言います:

アクション バー内に含まれている場合、デバイスの密度に依存しない幅に基づいて、アクション アイテムの最大数が制限されます。アクション アイテムは、アクション バーの幅の半分以上をカバーすることもできません。

ここから。

于 2013-05-27T11:46:13.363 に答える
0

XML ファイルでは、要素MenuItemを宣言することにより、アクション アイテムとして表示されるように要求できます。このように、利用可能なスペースがある場合にのみ、すばやくアクセスできるように が表示されます。十分なスペースがない場合、アイテムはオーバーフロー メニューに表示されます。android:showAsAction="ifRoom"<item>MenuItemActionBar

あなたの答えは次のとおりです。

"ifRoom" を使用してアイテムをアクション バーに表示するように要求しますが、十分なスペースがない場合 (小さな画面でスペースが限られている場合) は、システムがアイテムをオーバーフロー メニューに移動できるようにします。

android:showAsAction="always"のすべてのメニューを表示するために使用できますActionBar

于 2013-05-27T11:44:59.493 に答える