材料"关闭"工具栏中的按钮而不是后退

时间:2014-11-25 11:24:22

标签: android android-actionbar material-design

我在谷歌的收件箱应用程序中看到,编写一个新的电子邮件,在工具栏中而不是后退按钮(箭头),它有一个“关闭”按钮(见图片)。

我怎样才能做到这一点?

inbox compose close button

6 个答案:

答案 0 :(得分:95)

使用

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

实现这一目标。

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

this.getSupportActionBar().setDisplayHomeAsUpEnabled(true);

答案 1 :(得分:18)

如果使用支持应用栏,您需要在清单中定义父级,然后覆盖 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

答案 2 :(得分:5)

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

答案 3 :(得分:5)

抱歉迟到了。 我找到了最简单的解决方案。以上所有答案对我不起作用(because i want to use toolbar not actionBar due to theming)。所以尝试通过xml布局添加关闭按钮。它有效。

这是一个xml语法,用于向工具栏添加关闭按钮(v7)。

app:navigationIcon="@drawable/ic_close_black_24dp"

这里是一个输出图像output image

答案 4 :(得分:2)

在清单中定义父活动的另一种方法是处理onOptionsItemSelected方法中要采取的操作,如下例所示:

$this->order->with('orderDetails', 'orderDetails.product')->get();

答案 5 :(得分:-4)

您可以定义样式:

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