SetHomeButtonEnabled не работает, но setDisplayHomeAsUpEnabled работает
Я хочу добавить значок приложения в панель действий для всех действий в моем приложении и щелкнуть значок, я хотел бы перейти на домашнюю страницу моего приложения.
Я попытался использовать следующий код в onCreate
ActionBar actionBar = getSupportActionBar();
actionBar.setLogo(R.drawable.ic_launcher);
actionBar.setDisplayUseLogoEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setHomeButtonEnabled(true);
Теперь значок приложения появляется в панели действий, но при нажатии на него onOptionsItemSelected не получает вызов. Но если вы используете actionBar.setDisplayHomeAsUpEnabled(true) вместо actionBar.setHomeButtonEnabled(true), onOptionsItemSelected получает вызов с item.getItemId(). Ниже приведен фрагмент кода
ActionBar actionBar = getSupportActionBar();
actionBar.setLogo(R.drawable.ic_launcher);
actionBar.setDisplayUseLogoEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
В документации говорится, что с помощью setDisplayHomeAsUpEnabled и setHomeButtonEnabled будет вызываться onOptionsItemSelected, и единственная разница - стрелка вверх. Мне не нужна стрелка вверх в панели действий, мне нужен только значок приложения. Как это можно сделать?
My minSdkVersion 14 и targetSdkVersion 21.
Ответы
Ответ 1
Из http://developer.android.com/reference/android/app/ActionBar.html#setHomeAsUpIndicator(int)
Вы можете использовать:
actionBar.setHomeAsUpIndicator(R.drawable.ic_launcher);
actionBar.setDisplayShowHomeAsUpEnabled(true);
и это должно заменить стрелку назад на значок
Ответ 2
вы можете использовать это:
Toolbar toolbar = (Toolbar) findViewById(R.id.myToolbar);
toolbar.setNavigationIcon(R.drawable.ic_back);
setSupportActionBar(toolbar);
toolbar.setNavigationOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
finish();
}
});