DrawerLayoutでBackkeyで閉じる処理(失敗例も)
DrawerLayoutでバックボタンで閉じる処理は素直にonBackPressedをOverrideしましょう
正解
@Override
public void onBackPressed() {
if (this.mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
this.mDrawerLayout.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
失敗
StackOverFlowにて以下のような書き方を見かけましたが真似しちゃダメです
mDrawerLayout.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
こうすると確かにNavigationViewは閉じるのですが、子ビューにどうやってもフォーカスが当たらなくなり、以下の様なエラーが吐き出されます
W/TextView: TextView does not support text selection. Action mode cancelled.