Совместное использование NavigationView со всеми активностями?
Как мы делимся Drawer
со всеми мероприятиями?
В листере: onNavigationItemSelected
из setNavigationItemSelectedListener
мы можем получить id
и перейдите к нему. Я ищу что-то вроде этого:
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;
...
}
...
Я знаю, что могу сделать все menuItems
добавить / заменить Fragment
Но обработка фрагментов и управление памятью - большая боль.
Вместо этого я хочу каждый menuItem
выберите / нажмите, чтобы вызвать Activity
, т.е. каждый MainMenuItem
иметь Activity
и те будут содержать фрагменты со сложными макетами.
Все, что я хочу сделать, это чтобы каждый пункт главного меню был
Activity
вместоFragment
,И все эти действия могут делиться одинаково
DrawerNavigation
,
Это рекомендуемый способ? Или мы всегда добавляем Fragments
за NavigationDrawer
элемент нажимает??
Должен ли я добавить NavigationView
в BaseActivity
а потом продлевать все действия оттуда??
2 ответа
Я нашел ответ, используя этот SO ответ
Расширение - это правильный путь. Просто переопределите setContentView правильным способом...
Я немного запутался и здесь. Найдя очень мало информации об этом, я попытался расширить свой подкласс
public class NewActivity extends MainActivity{
...
}
Однако одно это ничего не сделало. MainActivity
имеет полностью функционирующий NavigationView
это будет переходить к каждому виду деятельности. Осталось только поделиться им с каждым действием.