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ąć?
android
android-actionbar
material-design
Marta Rodriguez
źródło
źródło
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; }
źródło
onSupportNavigateUp()
? Dokumentacja mówi, że to tylko flaga sukcesuprzepraszam 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"
A oto obraz wyjściowy
źródło
@drawable/ic_close_black_24dp
bierze?Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); toolbar.setTitle("Search"); toolbar.setNavigationIcon(R.drawable.abc_ic_clear_mtrl_alpha); setSupportActionBar(toolbar);
źródło
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); }
źródło
Możesz zdefiniować styl:
<style name="Theme.Toolbar.Clear"> <item name="toolbarNavigationIcon">@drawable/abc_ic_clear_mtrl_alpha</item> </style>
i użyj go w swoim motywie:
<style name="Theme.Clear"> <item name="toolbarTheme">@style/Theme.Toolbar.Clear</item> </style>
źródło