Android工具栏有home和back按钮



是否可以在工具栏中同时显示主图标和返回图标?1)是否可以改变后退按钮图标和主页图标的显示顺序?目前它先显示箭头按钮,然后显示徽标(home键)

2)第二个要求是在点击主页图标时清除活动堆栈,并在返回按钮的情况下返回到上一个屏幕。

我有以下代码,这将显示一个箭头后退键和home图标设置为标志。是否有可能同时处理这两个图标上的点击事件:

Toolbar toolbar = (Toolbar)findByViewID(R.id.toolbar);
toolbar.setNavigationIcon(R.drwable.btn_back);
setSuppportActionBar(toolbar);
getSupportActionBar().setLogo(R.drawable.home_icon);
getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

我能够通过在onOptionsITemSelected方法中处理它来处理单击箭头图标。是否有一种方法来处理点击标志图标?我的想法是使用home键来清除活动堆栈,并使用后退键导航到上一个屏幕。

I tried with

toolbar.setNavigationOnClickListener() 

但是它对点击后退键没有影响。

中处理android.R.id.home时工作
onOptionsItemSelected()

用于返回导航。这对我很有效。

@Override 
    public boolean onOptionsItemSelected(MenuItem menuItem) {
        switch (menuItem.getItemId()) {
            case android.R.id.home:
                Intent homeIntent = new Intent(this, HomeActivity.class);
                homeIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(homeIntent);
        } 
        return (super.onOptionsItemSelected(menuItem));
    } 

try with this

toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem item) {
            if (item.getItemId() == android.R.id.home) {
                getActivity().finish();
            }
            return true;
        }
    });
  1. 将我们的自定义布局设计为单独的"toolbar_content.xml",并将此布局包含在您的"main_layout.xml"的工具栏标签中。
  2. 在你的基础活动的"toolbar_content.xml"中为你的项目编写点击侦听器,以便侦听器在整个应用程序中可用。

最新更新