Rin*_*nav 9 android android-intent android-fragments navigationview android-support-design
我们如何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;
...
}
...
Run Code Online (Sandbox Code Playgroud)
我知道我可以进行所有的menuItems添加/替换Fragment,但是处理片段和内存管理是一件很大的痛苦.
相反,我希望每个menuItemselect/click都能调用Activity.即每个MainMenuItem人都拥有Activity和那些将拥有复杂布局的片段.
我想做的就是让每个主菜单项都是一个
Activity而不是一个Fragment.所有这些活动都可以共享
DrawerNavigation.
这是推荐的方式吗?还是我们随时添加Fragments的NavigationDrawer项的点击?
我要补充NavigationView到BaseActivity,然后从那里伸出的所有活动?
我在这里也有点困惑。在找到很少的信息后,我尝试扩展我的子类
public class NewActivity extends MainActivity{
...
}
Run Code Online (Sandbox Code Playgroud)
然而,仅此一点并没有起到任何作用。它MainActivity有一个功能齐全的功能NavigationView,可以导航到每个活动。剩下的就是与每个活动共享它。