Ich bin Navigation drawer
in meiner App implementieren. Alles funktioniert gut. Ich habe ein Problem, wenn ich auf Hamburger icon
klicke, öffnet die Navigationsschublade nicht. Wenn ich danach wische, wird die Navigationsleiste erfolgreich geöffnet. Nach dem Zurückwischen kann ich die Navigationsleiste erfolgreich schließen. Jetzt funktioniert der Hamburger-Icon-Klick richtig und ich kann die Navigationsleiste öffnen, indem ich auf das Icon klicke.Hamburger-Symbol klicken nicht funktioniert in Schubladenlayout
Also nehme ich Hilfe von Log
hier ist ein Code
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawers();
Log.e("drawer 1","clicked");
return;
} else {
Log.e("drawer 2","clicked");
drawer.openDrawer(GravityCompat.START);
}
}
});
private void setUpNavigationView() {
int[][] states = new int[][]{
new int[]{android.R.attr.state_enabled}, // enabled
new int[]{-android.R.attr.state_enabled}, // disabled
new int[]{-android.R.attr.state_checked}, // unchecked
new int[]{android.R.attr.state_pressed},
new int[]{android.R.attr.state_selected} // pressed
};
int[] colors = new int[]{
Color.BLACK,
Color.RED,
Color.GREEN,
Color.BLUE,
Color.WHITE
};
ColorStateList csl = new ColorStateList(states, colors);
navigationView.setItemTextColor(csl);
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
switch (menuItem.getItemId()) {
case R.id.nav_home:
drawer.closeDrawers();
break;
case R.id.nav_fav:
if (sharedPreferences.contains("favHotelId")) {
searchNearHotel("favHtl");
}
else
Toast.makeText(getApplicationContext(),"No favorite hotels",Toast.LENGTH_SHORT).show();
break;
case R.id.nav_sign_out: drawer.closeDrawers();
break;
}
if (menuItem.isChecked()) {
menuItem.setChecked(false);
} else {
menuItem.setChecked(true);
}
menuItem.setChecked(true);
loadHomeFragment();
return true;
}
});
final ActionBarDrawerToggle mDrawerToggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.openDrawer, R.string.closeDrawer) {
@Override
public void onDrawerClosed(View drawerView) {
// Code here will be triggered once the drawer closes as we dont want anything to happen so we leave this blank
super.onDrawerClosed(drawerView);
invalidateOptionsMenu();
}
@Override
public void onDrawerOpened(View drawerView) {
// Code here will be triggered once the drawer open as we dont want anything to happen so we leave this blank
super.onDrawerOpened(drawerView);
drawer.openDrawer(drawerView);
Log.e("drawer 3","clicked");
invalidateOptionsMenu();
}
};
//Setting the actionbarToggle to drawer layout
drawer.setDrawerListener(mDrawerToggle);
mDrawerToggle.syncState();
//calling sync state is necessary or else your hamburger icon wont show up
View header = navigationView.getHeaderView(0);
tv_email = (TextView) header.findViewById(R.id.drawer_userName);
drawer_userNameEmail = (TextView)
}
}
Als ich zum ersten Mal auf das Symbol klicken die public void onDrawerOpened(View drawerView)
Methode ist das nicht heißt, warum meine Schublade öffnet sich nicht. Nach swipe gesture
in der Navigationsleiste wird die Methode erfolgreich aufgerufen.
Bitte helfen Sie mir herauszufinden, wo das Problem liegt.
zeigen ur Protokolldetails zum ersten Mal Klick entspricht. –
Bitte geben Sie den vollständigen Code in Bezug auf Navigation Schublade –
beim ersten Klick nur 'Schublade 2 angeklickt' in Log anzeigen und nach Swipe' Schublade 3 geklickt' auch in Log @Neo –