我们如何Drawer
与所有活动分享?
在 lister: onNavigationItemSelected
ofsetNavigationItemSelectedListener
我们可以得到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
add/replace Fragment
,但是处理片段和内存管理是一个很大的痛苦。
相反,我希望每次menuItem
选择/单击都可以调用Activity
. 即每个MainMenuItem
都有Activity
,并且那些将包含具有复杂布局的片段。
我想做的就是让每个主菜单项都是一个
Activity
而不是一个Fragment
。并且所有这些活动都可以共享
DrawerNavigation
。
这是推荐的方式吗?还是我们总是Fragments
为NavigationDrawer
项目点击添加?
我应该添加NavigationView
然后BaseActivity
从那里扩展所有活动吗?