Android “材料”;“关闭”;按钮,而不是返回

Android “材料”;“关闭”;按钮,而不是返回,android,android-actionbar,material-design,Android,Android Actionbar,Material Design,我在谷歌的收件箱应用程序中看到,它在工具栏上没有后退按钮(箭头),而是有一个“关闭”按钮(见图) 我怎样才能做到这一点 使用 this.getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_action_close); 为了实现这一点 您可以创建自己的关闭图标或从GitHub上获取。另外,将这一行添加到上面的行之前,使关闭功能成为后退箭头 this.getSupportActionBar().setDisplayHomeAsUpEn

我在谷歌的收件箱应用程序中看到,它在工具栏上没有后退按钮(箭头),而是有一个“关闭”按钮(见图)

我怎样才能做到这一点

使用

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

为了实现这一点

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

this.getSupportActionBar().setDisplayHomeAsUpEnabled(true);

可以定义样式:

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

@可绘图/abc_ic_clear_mtrl_alpha
并在主题中使用它:

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

@style/Theme.Toolbar.Clear

您需要在清单中定义父项,然后覆盖支持导航up()(当然,如果使用支持应用程序栏)。此外,请访问此方便的网站,获取图标包:


在清单中定义父活动的另一种方法是处理OnOptions ItemSelected方法中要执行的操作,如本例所示:

 @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);
}

对不起,迟了答复我为您找到了最简单的解决方案。这里的所有答案都不适用于我(
,因为我想使用工具栏而不是操作栏,因为主题设置
)。所以,尝试通过xml布局添加关闭按钮。它是有效的

这里有一个xml语法,用于将关闭按钮添加到工具栏(v7)。

app:navigationIcon="@drawable/ic_close_black_24dp"

ans这里有一个输出图像

它不工作。它不会用新图标替换后退箭头,两者都会出现。此外,在这个解决方案中,图标没有“colorPrimaryDark”属性。它可以工作,但不是我想要的。我希望能像back icon一样使用“colorPrimaryDark”。但“关闭”图标似乎不是SDK的一部分。谢谢@AlokNair!使用ActionBarActivity时工作正常,并且在清单中指定了父级+答案是1。谢谢你,伙计!我发现我必须先调用SetDisplayHomeAsupIndicator,然后再调用SetHomeAsUpIndicator,否则图标将不会被替换。如何更改回原来的图标?是否有任何原因导致您在支持NavigateUp()中返回false?文档上说这只是一个成功的标志,
@drawable/ic\u close\u black\u 24dp
来自哪里?@CACuzcatlan这只是他在drawable文件夹中的一个随机图像。您可以选择任何图标。@CACuzcatlan您可以在Android Studio vector资产中找到它。
 @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);
}
app:navigationIcon="@drawable/ic_close_black_24dp"