2012-12-05 66 views
0

我已經看到了一些關於讓標題與圖標一起顯示在actionbarsherlock中的文章。該圖標顯示正常,但標題不顯示在旁邊。Actionbarsherlock - 標題不顯示

目前它顯示主頁圖標及其旁邊的所有標籤。我正在尋找的是主頁圖標,然後是標題,並在下方顯示標籤。這是我的代碼。

ACTIVITY

public class MainActivity extends SherlockFragmentActivity { 

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     mJsonHandler = JsonHandler.getInstance(this); 
    } 

@Override 
    public boolean onCreateOptionsMenu(Menu menu) 
    { 
     com.actionbarsherlock.view.MenuInflater inflater = getSupportMenuInflater(); 

     ActionBar ab = getSupportActionBar(); 

     ab.setDisplayHomeAsUpEnabled(true); 
     ab.setDisplayShowTitleEnabled(true); 
     ab.setDisplayShowHomeEnabled(true); 
     ab.setDisplayUseLogoEnabled(true); 

     ab.setTitle("TITLE TO SHOW"); 

     inflater.inflate(R.menu.activity_main, menu); 

     return super.onCreateOptionsMenu(menu);  
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) 
    { 
     switch(item.getItemId()) { 
     case R.id.menu_item0: 

      break; 
     case R.id.menu_item1: 

      break; 
     case R.id.menu_item2: 

      break; 
     case R.id.menu_item3: 

      break; 
     case R.id.menu_item4: 

      break; 
     case R.id.menu_item5: 

      break; 
     default: 
      this.onBackPressed(); 
      break; 
     } 
     return false; 
    } 
} 

activity_main.xml中(菜單)

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 

<item 
    android:id="@+id/menu_item0" 
    android:orderInCategory="1" 
    android:showAsAction="always" 
    android:title="@string/menu_item0"/> 

<item 
    android:id="@+id/menu_item1" 
    android:orderInCategory="2" 
    android:showAsAction="always" 
    android:title="@string/menu_item1"/> 

<item 
    android:id="@+id/menu_item2" 
    android:orderInCategory="3" 
    android:showAsAction="always" 
    android:title="@string/menu_item2"/> 

<item 
    android:id="@+id/menu_item3" 
    android:orderInCategory="4" 
    android:showAsAction="always" 
    android:title="@string/menu_item3"/> 

<item 
    android:id="@+id/menu_item4" 
    android:orderInCategory="5" 
    android:showAsAction="always" 
    android:title="@string/menu_item4"/> 

<item 
    android:id="@+id/menu_item5" 
    android:orderInCategory="6" 
    android:showAsAction="always" 
    android:title="@string/menu_item5"/> 

艙單

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="15" /> 

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/Sherlock.Theme" > 
    <activity 
     android:name=".activities.MainActivity" 
     android:label="@string/title_activity_main" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    </application> 

</manifest> 

福爾摩斯主題

<style name="Sherlock.Theme" parent="Theme.Sherlock.Light.DarkActionBar"> 
</style> 
+0

你試過只是調用setTitle(「blah」);而不是ab.setTitle(「foo」); ? – dymmeh

+0

@dymmeh標題仍然不顯示使用setTitle(「」),而沒有得到操作欄第一。 – DMCApps

回答

3

你在ActionBar太多的菜單項設置爲always表演。你應該只設置最重要的那個。你應該通過Android設計準則上適當的方式讀取成立ActionBar

Android Design Guidelines - Action Bar organization

此外,你應該在onCreate建立ActionBar離開onCreateOptionsMenu只充氣你的菜單(S)。這只是一個通用技巧,可以用於更好,更專業的代碼格式。

+0

非常感謝這些信息。我減少了2個項目(測試)和標題顯示,這是偉大的。不幸的是,根據需要,所有選項都需要在操作欄中顯示,以及上方的主頁和標題(它們都適用於沒有主頁/標題的頁面)。那麼有沒有一種方法可以設置actionbarsherlock的樣式,使主圖標和標題位於同一行上,並在圖標下方顯示?我意識到這不是指導原則的一部分,因爲主頁和標題被視爲操作欄中的項目,但這是請求查看的內容。 – DMCApps

+0

您所描述的內容聽起來像是您想要使用製表符而不是菜單項。研究一下。 – adneal

+0

標籤絕對是我尋找的東西,我錯過了actionbarsherlock中的一個選項。要使用標籤只需要設置getSupportActionBar()。setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);這樣它的頂部有Actionbar,然後是下面的標籤。感謝所有的信息,並指引我朝着正確的方向前進。 – DMCApps