Панель инструментов Android с кнопкой «домой» и «назад»

Можно ли отображать значок домашней иконы и значок на панели инструментов? 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() 

Для навигации назад. Это сработало для меня.

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

Попробуйте с этим

 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» в своей базовой деятельности, чтобы слушатели могли быть доступны через приложение.