NavigationView OnNavigationItemSelectedListener no se llama

Estoy intentando usar NavigationView desde la biblioteca de diseño de soporte de Android en mi aplicación. Por alguna razón, el escucha OnNavigationItemSelected no se está llamando. Aquí está mi código

Diseño de la actividad

  

Actividad onCreate ()

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(getLayoutID()); toolbar = (Toolbar) findViewById(R.id.activity_toolbar); setSupportActionBar(toolbar); toolbar.inflateMenu(R.menu.common_menu); final ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.setHomeAsUpIndicator(R.drawable.ic_menu_white_24dp); actionBar.setDisplayHomeAsUpEnabled(true); } drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); navigationView = (NavigationView) findViewById(R.id.navigation_view); navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(final MenuItem menuItem) { Snackbar.make(contentLayout, menuItem.getTitle() + " pressed", Snackbar.LENGTH_LONG).show(); menuItem.setChecked(true); // allow some time after closing the drawer before performing real navigation // so the user can see what is happening drawerLayout.closeDrawer(GravityCompat.START); mDrawerActionHandler.postDelayed(new Runnable() { @Override public void run() { navigate(menuItem.getItemId()); } }, DRAWER_CLOSE_DELAY_MS); drawerLayout.closeDrawers(); return true; } }); usernameTextView = (TextView) findViewById(R.id.drawer_header_username); usernameTextView.setText(getAppDContext().getAccount().getUsername()); } 

    Cuando crea un xml, debe escribir NavigationView después de BaseLayout (FrameLayout, LinearLayout, etc.)

         

    para mí esto funcionó!

    navigationView = (NavigationView) findViewById (R.id.nav_view);

    navigationView.bringToFront ();

    El diseño principal de tu actividad debería verse así:

         

    En este NavigationView he vinculado header.xml y menu_drawer.xml (desde la carpeta del menú) por ejemplo menu_drawer.xml:

           

    que tu código java:

     public class ActivityMain extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setUpToolbar(); setUpNavDrawer(); } private void setUpNavDrawer() { NavigationView view = (NavigationView) findViewById(R.id.navigationView); mDrawerLayout = (DrawerLayout) findViewById(R.id.navigationDrawer); view.setNavigationItemSelectedListener(this); mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, toolbar, R.string.drawerOpen, R.string.drawerClose); mDrawerLayout.addDrawerListener(mDrawerToggle); mDrawerToggle.syncState(); } 

    Verifica si esto funciona para ti. En mi proyecto funciona como un encanto.