2013-05-27 41 views
14

我的動作欄有問題,我試圖在其上設置一個search view以獲得可擴展的搜索欄。動作欄 - ifRoom選項留下太多空間

這很讓人開心,除了我必須使用選項ifRoom來設置所有其他菜單項以便讓搜索字段在單擊搜索圖標時佔據所有房間這一事實。

除了太多菜單項被推入菜單溢出,垂直屏幕上只剩下2個圖標(包括搜索欄)的事實之外,該部分也運行良好。

我沒有在具有5菜單項,另一項活動另一項測試:

  1. 在第一種情況下,我把所有的人都用android:showAsAction="always"
  2. 在第二種情況下,我把所有的人都用``機器人:showAsAction = 「ifRoom」`

下面是結果:

案例1:

always case

案例2:

ifRoom case

爲什麼,如果我使用ifRoom,只有2個圖標顯示,而實際上5可以隨便填的地方嗎?

正因爲如此,我有我提供搜索視圖項旁邊只有一個菜單項...

謝謝!

+0

爲什麼如果我使用ifRoom,只顯示2個圖標? ----> http://stackoverflow.com/a/15832302/1168654 –

+0

我檢查了你的鏈接,但它沒有回答我的問題。我知道它與屏幕大小有關,但在這裏我有足夠的空間來放置2個以上的圖標。 –

+0

在XML文件中,您可以通過爲元素聲明android:showAsAction =「ifRoom」來請求菜單項顯示爲操作項。這樣,只有有空間可用時,菜單項纔會出現在操作欄中以便快速訪問。如果沒有足夠的空間,該項目會出現在溢出菜單中。希望你能理解。對於更多的細節檢查:http://developer.android.com/guide/topics/ui/actionbar.html –

回答

13

看起來其設計決定:

傑克沃頓說:

當動作杆內包含有基於所述設備的密度無關的寬度 操作項的有限最大是。動作項目的 也不能覆蓋動作 的寬度的一半以上。

here

+2

謝謝,我不知道這個限制是否到位。我發現這裏詳細介紹了一些示例和顯示的圖標數量:http://developer.android.com/design/patterns/actionbar.html –

0

在XML文件中,您可以通過爲<item>元素聲明android:showAsAction="ifRoom"來請求MenuItem顯示爲操作項。這樣,MenuItem出現在ActionBar只有有空房間時才能快速訪問。如果沒有足夠的空間,該項目會出現在溢出菜單中。

所以你的回答是:

使用「ifRoom」要求,一個項目出現在動作條,但 允許系統將其移動到溢出菜單的時候有沒有 足夠的空間(。當小屏幕上的空間有限時)。

您可以使用android:showAsAction="always"顯示所有菜單ActionBar

+0

非常感謝,但如上所述,如果有可用空間,我希望圖標顯示在可見操作欄中,而不是溢出。 –

+0

我在這裏解釋,因爲你明白爲什麼我們不能使用ifroom在操作欄中顯示所有圖標。在排序中你不能這樣做'ifroom' –

0

即使當我搬到我的100英寸屏幕尺寸的平板電腦時,「ifRoom」選項的圖標的最大值爲5(五):-)並拼命地在橫向上旋轉它 請參閱傑克沃頓的答案鏈接(謝謝! )