W jaki sposób udostępniamy Drawer
ze wszystkimi działaniami?Udostępnianie NavigationView ze wszystkimi działaniami?
W lister: onNavigationItemSelected
z setNavigationItemSelectedListener
możemy uzyskać id
i przejść do niego. Co szukam jest coś takiego:
private void initDrawerLayout() {
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
NavigationView navView = (NavigationView) findViewById(R.id.navigation_view);
navView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
Intent intent;
int id = menuItem.getItemId();
switch(id) {
case R.id.home:
case R.id.drawer_home:
// call activity instead of adding/replacing fragment
return true;
case R.id.drawer_gallery:
// call activity instead of adding/replacing fragment
intent = new Intent(MainActivity.this, GalleryActivity.class);
startActivity(intent);
return true;
case R.id.drawer_about:
// call activity instead of adding/replacing fragment
intent = new Intent(MainActivity.this, AboutActivity.class);
startActivity(intent);
return true;
...
}
...
wiem, że mogę zrobić wszystko menuItems
dodatek/wymienić Fragment
, ale potem obchodzenia fragmenty i zarządzanie pamięcią jest duży ból.
Zamiast tego chcę, aby każdy menuItem
wybrał/kliknął, aby wywołać Activity
. tj. każdy MainMenuItem
ma mieć Activity
, a te będą zawierać fragmenty o złożonych układach.
Wszystko co chcę zrobić, to mieć każdy główny element menu być
Activity
zamiastFragment
.Wszystkie te działania mogą mieć ten sam numer
DrawerNavigation
.
Czy to jest zalecany sposób? Lub czy zawsze dodajemy Fragments
dla kliknięć pozycji ?
Czy powinienem dodać NavigationView
do BaseActivity
, a następnie rozszerzyć wszystkie działania?
Following this new guide about Support Design lib
tak, powinieneś "dodać NavigationView do BaseActivity, a następnie rozszerzyć wszystkie działania stamtąd" – pskink