工具栏中的材料“closures”button而不是后退

我已经在Google的收件箱应用程序中看到,在工具栏中创build一个新的电子邮件,而不是后退button(箭头),它有一个“closures”button(见图片)。

我怎样才能做到这一点?

收件箱撰写关闭按钮

使用

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

为了达成这个。

你可以创build你自己的closures图标或从github上设置的材质devise图标中获取。 另外添加这个使后退箭头closuresfunction。

 this.getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

您需要在清单中定义父级,然后覆盖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; } 

在这里输入图像说明

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

在清单中定义父活动的另一种方法是处理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); } 

你可以定义一个样式:

 <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>