2013-05-27 40 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);