2014-11-25 80 views

回答

75

使用

this.getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_action_close); 

实现这一目标。

您可以创建自己的关闭图标或从GitHub上的material design icon set获取。另外,在上面的行之前添加这一行以使关闭功能成为后退箭头。

this.getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
+0

它不工作。它不会替换带有新图标的后退箭头,都会出现。此外,通过此解决方案,该图标不会获得“colorPrimaryDark”属性。 – 2014-11-25 11:47:39

+0

@MartaRodriguez请参阅我的更新回答 – 2014-11-25 11:59:54

+0

它的作品,但并不完全是我想要的。我预计会像后面的图标一样工作,用“colorPrimaryDark”。但似乎“关闭”图标不是SDK的一部分。谢谢@AlokNair! – 2014-11-25 12:08:23

-3

您可以定义样式:

<style name="Theme.Toolbar.Clear"> 
    <item name="toolbarNavigationIcon">@drawable/abc_ic_clear_mtrl_alpha</item> 
</style> 

,并用它在你的主题:

<style name="Theme.Clear"> 
    <item name="toolbarTheme">@style/Theme.Toolbar.Clear</item> 
</style> 
14

您需要在清单定义父,然后覆盖onSupportNavigationUp()如果使用支持应用程序栏当然。此外,去这个网站时得心应手的图标包:https://www.google.com/design/icons/

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

    setContentView(R.layout.yourAwesomeLayout); 

    setupToolBar();  
} 

private void setupToolBar() { 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 

    if (toolbar == null) return; 

    setSupportActionBar(toolbar); 

    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

    getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_close_white_24dp); 
} 

@Override 
public boolean onSupportNavigateUp() { 
    finish(); // close this activity as oppose to navigating up 

    return false; 
} 

enter image description here

+0

你从'onSupportNavigateUp()'返回false的任何原因?文件说它只是一个成功的标志 – brainmurphy1 2017-05-07 18:28:40

3
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
toolbar.setTitle("Search"); 
toolbar.setNavigationIcon(R.drawable.abc_ic_clear_mtrl_alpha); 
setSupportActionBar(toolbar); 
1

在清单定义父活动的替代方法是处理采取的onOptionsItemSelected方法像什么行动在此示例中:

@Override 
public boolean onOptionsItemSelected(MenuItem item){ 
    switch (item.getItemId()) { 
     // Respond to the action bar's Up/Home/back button 
     case android.R.id.home: 
      finish(); 
      break; 
    } 
    return super.onOptionsItemSelected(item); 
} 
0

对于迟到回复感到抱歉。 我找到了最简单的解决方案。这里以上所有答案都不适用于我(because i want to use toolbar not actionBar due to theming)。所以尝试通过xml布局添加关闭按钮。它的工作原理。

这里是一个xml语法来添加关闭按钮到工具栏(v7)。这里

app:navigationIcon="@drawable/ic_close_black_24dp" 

ANS是一个不折不扣的把图像output image