2015-05-31 74 views
0

我是Android新手,我一直在給Android Studio一個旋轉。我遵循Google's tutorial,我仍然無法在仿真器或實際設備上啓動並運行ActionBar。我已經在清單文件中指定了最小版本,並且我也相應地編輯了菜單和活動xml文件。如何獲取ActionBar進行渲染?

混淆,在activity_foo.xml所示的UI和menu_foo.xml是不同的:

activity_foo.xml: enter image description here

menu_foo.xml: enter image description here

甚至更​​令人混淆,所述最終的應用程序時,內置顯示搜索和設置在漢堡菜單,雖然我不記得在GUI預覽中看到它: enter image description here

我該如何解決這個問題?

回答

1

令人困惑的是,在activity_foo.xml顯示的用戶界面和menu_foo.xml不同

他們應該是不同的。一個是向你展示一個佈局文件。另一個是向你展示一個菜單資源。他們的預覽不應該一定匹配。畢竟,比麪包箱大的Android應用程序將擁有許多佈局資源,其中很少會定義活動的內容。

對於定義活動內容的佈局,IIRC,你可以在你的佈局文件的根元素相同tools:context=".FooActivity"和預覽可能考慮到這一點。

更容易混淆,最終的應用程序時,內置顯示漢堡包菜單中的搜索和設置都雖然我不記得看到它在圖形用戶界面預覽:

在預覽,搜索項目由工具欄式按鈕表示(圖標是放大鏡)。

在你的菜單資源中,你有一個<item>android:showAsAction和一個<item>app:showAsAction。您正在使用appcompat-v7操作欄backport,或者您沒有。這將通過之類的東西來決定:

  • 什麼Java類的活動,你正在使用你的清單中的活動是什麼主題(如果它是基於從(ActionBarActivityAppCompatActivityappcompat-v7

  • 繼承在Theme.AppCompat.*,您使用appcompat-v7

如果您正在使用appcompat-v7,您需要更改android:showAsActionapp:showAsAction。鑑於您在仿真器中運行該項目的結果,我的猜測是您正在使用appcompat-v7。如果您對菜單資源進行更改並再次運行該項目,則可能會看到搜索項顯示爲放大鏡圖標,如您在預覽中看到的那樣。我說「可能」是因爲有可能沒有空間顯示該工具欄樣式的圖標,具體取決於運行應用程序的設備的屏幕大小和方向—帶有ifRoom的操作欄項目將顯示爲工具欄樣式的按鈕,如果存在如果沒有房間,或將進入溢出菜單。

+0

謝謝,它只需要一個app:showAsAction =「always」 – shortstheory