Widziałem w aplikacji Google Inbox, jak tworzyłem nowy e-mail, na pasku narzędzi zamiast przycisku Wstecz (strzałka) ma przycisk „zamknij” (patrz zdjęcie).
Jak mogę to osiągnąć?
Widziałem w aplikacji Google Inbox, jak tworzyłem nowy e-mail, na pasku narzędzi zamiast przycisku Wstecz (strzałka) ma przycisk „zamknij” (patrz zdjęcie).
Jak mogę to osiągnąć?
Odpowiedzi:
Posługiwać się
this.getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_action_close);
osiągnąć to.
Możesz stworzyć własną ikonę zamknięcia lub pobrać z zestawu ikon Material Design na GitHub. Dodaj również tę linię przed powyższą linią, aby zamknąć funkcję jako strzałkę wstecz.
this.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Musisz zdefiniować rodzica w manifeście, a następnie zastąpić onSupportNavigationUp (), jeśli oczywiście używasz paska aplikacji pomocy technicznej. Przejdź również do tej przydatnej witryny z pakietami ikon: 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()
? Dokumentacja mówi, że to tylko flaga sukcesu
przepraszam za spóźnioną odpowiedź. znalazłem dla Ciebie najłatwiejsze rozwiązanie . tutaj przede wszystkim odpowiedź nie działa dla mnie ( because i want to use toolbar not actionBar due to theming
). więc spróbuj dodać przycisk zamykania poprzez układ XML. i to działa.
tutaj jest składnia xml dodająca przycisk zamykania do paska narzędzi (v7).
app:navigationIcon="@drawable/ic_close_black_24dp"
@drawable/ic_close_black_24dp
bierze?
Alternatywą dla zdefiniowania aktywności rodzica w manifeście jest obsłużenie, jaką akcję należy podjąć w metodzie onOptionsItemSelected, jak w tym przykładzie:
@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);
}