2011-11-18 55 views
5

我想創建具有自定義視圖(DISPLAY_SHOW_CUSTOM)的選項卡式ActionBar(NAVIGATION_MODE_TABS)。它應該是這樣的:如何使用自定義視圖和選項卡創建Android ActionBar

enter image description here

我只需要能夠頂行中通過按鈕在活動導航 - 我會在正常與動作條做的 - 無分頁模式,並且還能夠切換第二行的製表符。如果我將ActionBar設置爲選項卡模式,自定義視圖消失,似乎選項卡模式和自定義視圖是相互排斥的......它甚至有可能嗎?

還有更多的可能的方法如何做到這一點,而沒有ActionBar。通常我會用按鈕創建一個佈局,將其包含在TabActivity(現在已棄用)中,就這些了。但我不認爲這將是最好的解決方案,所以任何幫助或建議表示讚賞。

在此先感謝。

編輯:經過一點研究,我發現它的工作原理,它只是不會顯示在我的4英寸屏幕上。不過,它仍然沒有像我期望的那樣工作。在更寬的屏幕上,自定義視圖顯示在標籤的右側 - 沒關係,但在4英寸手機屏幕上根本不顯示。

我認爲最好的解決方案是使用ActionBarSherlock庫(我不喜歡使用不推薦使用的功能,而且我的應用程序也必須在pre-sdk11版本設備上使用)和片段 - 一個用於頂部ActionBar,另一個用於選項卡式視圖。

+0

您可能會重新考慮使用操作欄和選項卡。你有一個有限的屏幕來處理,太多的導航控件只會讓你的應用程序混亂。從我所看到的情況來看,在3.5英寸甚至4英寸的手機上,如果不是更多的屏幕,這將佔用近1/3。只是一個想法:),在研究方面做得很好,它是學習的最佳方式。 – Jack

+0

不幸的是,沒有什麼可以重新考慮的,這是我的客戶的要求......但是,最後,我發現了一個我之前忽略的優雅和簡單的解決方案。頂部行的按鈕可以添加爲optionMenu項目 - 幾行和佈局完成。這個問題可以被關閉... – vitakot

回答

0

頂行的按鈕都被添加爲optionMenu項目:

@Override 
public boolean onCreateOptionsMenu(Menu menu) 
{ 
    for (int i = 0; i < menuItems; i++) 
    { 
     if (i == 0) 
     { 
      menu.add(R.string.home).setIcon(R.drawable.button_home).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT); 
      menu.getItem(0).setOnMenuItemClickListener(this); 

     } 
    } 

    return super.onCreateOptionsMenu(menu); 
} 

的動作條的理念是略有不同的話,我應該問什麼時候要。從Android developer guide:

當你想提供導航選項卡中的活動,使用操作欄的選項卡是一個很好的選擇(而不是使用TabWidget),因爲該系統將針對不同的屏幕操作欄選項卡大小,將它們放置在屏幕足夠寬時的主要操作欄,或屏幕太窄時的單獨欄(稱爲「堆疊操作欄」)。