Я бачив у програмі Google Inbox, що створює новий електронний лист, на панелі інструментів замість кнопки "Назад" (стрілка) є кнопка "закрити" (див. Малюнок).
Як я можу цього досягти?
Я бачив у програмі Google Inbox, що створює новий електронний лист, на панелі інструментів замість кнопки "Назад" (стрілка) є кнопка "закрити" (див. Малюнок).
Як я можу цього досягти?
Відповіді:
Використовуйте
this.getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_action_close);
для досягнення цього.
Ви можете створити свою власну піктограму закриття або отримати піктограму матеріального дизайну, встановлену на GitHub. Крім того, додайте цей рядок перед наведеним вище рядком, щоб зробити функцію близького функціонування як стрілка назад.
this.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Вам потрібно визначити батьків у маніфесті, а потім замінити onSupportNavigationUp (), якщо, звичайно, використовується панель додатків підтримки. Також перейдіть на цей зручний сайт із пакетами значків: https://www.google.com/design/icons/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.yourAwesomeLayout);
setupToolBar();
}
private void setupToolBar() {
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
if (toolbar == null) return;
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_close_white_24dp);
}
@Override
public boolean onSupportNavigateUp() {
finish(); // close this activity as oppose to navigating up
return false;
}
onSupportNavigateUp()
? У документації сказано, що це лише прапор успіху
вибачте за пізню відповідь. я знайшов найпростіше рішення для вас . тут перш за все відповідь не працює для мене ( because i want to use toolbar not actionBar due to theming
). тому спробуйте додати кнопку закриття через макет xml. і це працює.
ось синтаксис xml для додавання кнопки закриття на панель інструментів (v7).
app:navigationIcon="@drawable/ic_close_black_24dp"
@drawable/ic_close_black_24dp
?
Альтернативою визначенню батьківської активності в маніфесті є обробка того, які дії в методі onOptionsItemSelected, як у цьому прикладі:
@Override
public boolean onOptionsItemSelected(MenuItem item){
switch (item.getItemId()) {
// Respond to the action bar's Up/Home/back button
case android.R.id.home:
finish();
break;
}
return super.onOptionsItemSelected(item);
}