Если вы используете Toolbar
на , измените значок просто используйте:
Toolbar toolbar = findViewById(R.id.xxx);
toolbar.setNavigationIcon(R.drawable.xxxx4);
setSupportActionBar(toolbar);
Если вы используете ActionBar
вы можете использовать:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.xxx);
Вы также можете изменить его, переопределив в своей теме приложения атрибут homeAsUpIndicator
:
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
<item name="homeAsUpIndicator">@drawable/...</item>
</style>
Если вы используете Navigation Компоненты , в настоящее время нет возможности настроить значок HomeAsUpIndicator, и это ожидаемое поведение с отображаемой кнопкой «Вверх», когда вы находитесь в месте назначения, отличном от root. Существует обходной путь: добавление addOnDestinationChangedListener
после вашего метода настройки и проверка места назначения. Примерно так:
navController.addOnDestinationChangedListener(
new NavController.OnDestinationChangedListener() {
@Override
public void onDestinationChanged(@NonNull NavController controller, @NonNull NavDestination destination, @Nullable Bundle arguments) {
if (destination.getId() == R.id.nav_xxx) {
//With ActionBar
//getSupportActionBar().setHomeAsUpIndicator(R.drawable.xxxx);
//With a Toolbar
toolbar.setNavigationIcon(R.drawable.xxxx);
}
}
});
введите описание изображения здесь