2013-05-27 78 views
23

我想從操作欄中刪除左側的箭頭,只需要圖標和標題。從android中的操作欄刪除左側的箭頭?

我的代碼:

getSupportActionBar().setIcon(R.drawable.logo); 
getSupportActionBar().setDisplayShowTitleEnabled(true); 
getSupportActionBar().setTitle(R.string.dashboardtitle); 
getSupportActionBar().setDisplayHomeAsUpEnabled(false); 

但這不會刪除左箭頭。任何幫助!

+2

我本來期望'setDisplayHomeAsUpEnabled(假)'來做到這一點。你是否在做與自定義主題中的操作欄相關的任何內容? – CommonsWare

+0

不,只是我想從操作欄中刪除左側的箭頭 – info

+0

您運行Android SDK的版本是什麼? – Borys

回答

21

根據規格android specification: 要啓用了導航圖標(顯示在圖標旁邊的「向上」指示器),調用setDisplayHomeAsUpEnabled()在你的動作條:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.main); 
    ActionBar actionBar = getActionBar(); 
    actionBar.setDisplayHomeAsUpEnabled(true); 
    ... 
} 

所以你應該設置actionBar.setDisplayHomeAsUpEnabled(false);

UPDATE: 我測試下面的代碼與動作條福爾摩斯和它的工作。沒有後退箭頭:

getSupportActionBar().setIcon(R.drawable.ic_launcher); 
getSupportActionBar().setDisplayShowTitleEnabled(true); 
getSupportActionBar().setTitle(R.string.about_event_location); 
getSupportActionBar().setDisplayHomeAsUpEnabled(false); 
+7

根據問題,OP已經有了這個。 – CommonsWare

+0

還剩下小小的黑色空間 – Gattsu

22

您需要將此添加到您的actionBar主題中。你可以用你自己的透明圖像代替箭頭圖像

<item name="android:homeAsUpIndicator">@drawable/action_arrow</item> 
+4

這工作!因爲使用'@android:color/transparent'不包括應用程序圖標左側的任何填充,所以必須將新的drawable設置爲某個寬度的透明圖像。 –

+0

可以使用@null來避免創建透明圖像資源。 @ null

1

@vivek:很好用。我不建議像Tim Cooper說的那樣使用@android:color/transparent,因爲標題與左邊對齊。所以空的圖像更好

+5

這看起來更像是一個評論而不是答案。 – bummi

3
getActionBar().setHomeAsUpIndicator(R.drawable.action_arrow); 

其中action_arrow是一個25x10px透明PNG。對於福爾摩斯 相同的代碼將是:

getSupportActionBar().setHomeAsUpIndicator(R.drawable.action_arrow);