具有主页和返回按钮的Android工具栏

10

在工具栏中同时显示主页图标和返回图标,这是否可能? 1) 是否可以更改返回按钮图标和主页图标的显示顺序。 当前它会首先显示箭头按钮,然后是徽标(主页按钮)。

2) 第二个要求是,在单击主页图标并返回到上一个屏幕时清除活动堆栈,以便于返回按钮。

我有以下代码,将显示箭头返回键和设置为徽标的主页图标。是否可以处理这两个图标的单击事件:

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方法中处理箭头图标的点击事件。 是否有一种方法可以处理徽标图标的点击事件? 我的想法是使用主页按钮的单击来清除活动堆栈,使用返回按钮导航回先前的屏幕。

我已尝试过

toolbar.setNavigationOnClickListener() 

但是它对返回按钮点击没有影响。

在处理android.R.id.home时,只有在

onOptionsItemSelected()

类似于这个问题:https://dev59.com/tV8d5IYBdhLWcg3wt0AQ. Toolbar是一个视图组。您可以拥有自定义视图并将它们放置在任何位置。 - Raghunandan
@Raghunandan,这不是重复的问题,我会尝试使用自定义布局并将其设置为工具栏。那可能会起作用。 - Satish Navada
我从未说过这是一个重复的问题。我只是想知道你的工具栏应该长什么样子。你可以拥有自定义视图并相应地放置它们。 - Raghunandan
3个回答

6

要返回上一页,这对我很有用。

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

1
请尝试以下内容:
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem item) {
            if (item.getItemId() == android.R.id.home) {
                getActivity().finish();
            }
            return true;
        }
    });

0
  1. 将我们的自定义布局设计为单独的 "toolbar_content.xml" ,并在您的 "main_layout.xml" 中的 toolbar 标签中包含此布局。
  2. 在基本活动中为 "toolbar_content.xml" 中的项目编写单击侦听器,以便在整个应用程序中可用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接