File tree Expand file tree Collapse file tree 3 files changed +40
-0
lines changed
catalog/java/io/material/catalog/navigationdrawer Expand file tree Collapse file tree 3 files changed +40
-0
lines changed Original file line number Diff line number Diff line change 2525import android .os .Bundle ;
2626import androidx .appcompat .app .ActionBarDrawerToggle ;
2727import androidx .appcompat .widget .Toolbar ;
28+ import android .view .KeyEvent ;
2829import android .view .LayoutInflater ;
2930import android .view .View ;
3031import android .view .ViewGroup ;
3637import androidx .annotation .NonNull ;
3738import androidx .annotation .Nullable ;
3839import androidx .annotation .RequiresApi ;
40+ import androidx .core .view .GravityCompat ;
3941import androidx .drawerlayout .widget .DrawerLayout ;
4042import androidx .drawerlayout .widget .DrawerLayout .LayoutParams ;
4143import androidx .drawerlayout .widget .DrawerLayout .SimpleDrawerListener ;
@@ -192,4 +194,15 @@ public void onBackCancelled() {
192194 }
193195 };
194196 }
197+
198+ @ Override
199+ public boolean onKeyDown (int keyCode , KeyEvent keyEvent ) {
200+ if (keyCode == KeyEvent .KEYCODE_ESCAPE
201+ && (drawerLayout .isDrawerOpen (GravityCompat .START )
202+ || drawerLayout .isDrawerOpen (GravityCompat .END ))) {
203+ drawerLayout .closeDrawers ();
204+ return true ;
205+ }
206+ return super .onKeyDown (keyCode , keyEvent );
207+ }
195208}
Original file line number Diff line number Diff line change 2121import android .os .Bundle ;
2222import androidx .appcompat .app .ActionBarDrawerToggle ;
2323import androidx .appcompat .widget .Toolbar ;
24+ import android .view .KeyEvent ;
2425import android .view .LayoutInflater ;
2526import android .view .View ;
2627import android .view .ViewGroup ;
@@ -123,6 +124,17 @@ private void initNavigationView(NavigationView navigationView) {
123124 });
124125 }
125126
127+ @ Override
128+ public boolean onKeyDown (int keyCode , KeyEvent keyEvent ) {
129+ if (keyCode == KeyEvent .KEYCODE_ESCAPE
130+ && (drawerLayout .isDrawerOpen (GravityCompat .START )
131+ || drawerLayout .isDrawerOpen (GravityCompat .END ))) {
132+ drawerLayout .closeDrawers ();
133+ return true ;
134+ }
135+ return super .onKeyDown (keyCode , keyEvent );
136+ }
137+
126138 @ Override
127139 protected boolean shouldShowDefaultDemoActionBar () {
128140 return false ;
Original file line number Diff line number Diff line change @@ -494,6 +494,21 @@ optional but recommended.
494494For more information on content labels, go to the
495495[ Android accessibility help guide] ( https://support.google.com/accessibility/android/answer/7158690 ) .
496496
497+ Important: Ensure that there is a way to close the navigation drawer through
498+ keyboard navigation by listening for the ` esc ` key in your activity and closing
499+ open drawers.
500+
501+ ``` java
502+ @Override
503+ public boolean onKeyDown(int keyCode, KeyEvent keyEvent) {
504+ if (keyCode == KeyEvent . KEYCODE_ESCAPE && drawerLayout. isDrawerOpen(navigationView)) {
505+ drawerLayout. closeDrawer(navigationView);
506+ return true ;
507+ }
508+ return super . onKeyDown(keyCode, keyEvent);
509+ }
510+ ```
511+
497512</details >
498513
499514<details >
You can’t perform that action at this time.
0 commit comments