令人困惑的是,在activity_foo.xml顯示的用戶界面和menu_foo.xml不同
他們應該是不同的。一個是向你展示一個佈局文件。另一個是向你展示一個菜單資源。他們的預覽不應該一定匹配。畢竟,比麪包箱大的Android應用程序將擁有許多佈局資源,其中很少會定義活動的內容。
對於做定義活動內容的佈局,IIRC,你可以在你的佈局文件的根元素相同tools:context=".FooActivity"
和預覽可能考慮到這一點。
更容易混淆,最終的應用程序時,內置顯示漢堡包菜單中的搜索和設置都雖然我不記得看到它在圖形用戶界面預覽:
在預覽,搜索項目由工具欄式按鈕表示(圖標是放大鏡)。
在你的菜單資源中,你有一個<item>
有android:showAsAction
和一個<item>
有app:showAsAction
。您正在使用appcompat-v7
操作欄backport,或者您沒有。這將通過之類的東西來決定:
如果您正在使用appcompat-v7
,您需要更改android:showAsAction
至app:showAsAction
。鑑於您在仿真器中運行該項目的結果,我的猜測是您正在使用appcompat-v7
。如果您對菜單資源進行更改並再次運行該項目,則可能會看到搜索項顯示爲放大鏡圖標,如您在預覽中看到的那樣。我說「可能」是因爲有可能沒有空間顯示該工具欄樣式的圖標,具體取決於運行應用程序的設備的屏幕大小和方向—帶有ifRoom
的操作欄項目將顯示爲工具欄樣式的按鈕,如果存在如果沒有房間,或將進入溢出菜單。
謝謝,它只需要一個app:showAsAction =「always」 – shortstheory