DrawerToggleとToolbar(appCompat.v7)を組み合わせると、onOptionItemClick(id=android.R.id.home)が呼ばれない?
AppCompatをv22.2.0くらいにあげると、
* ActionBarActivityはDeprecatedになっていたり
* NavigationViewというのがDesign Libraryにあったり
なので、この記事は若干古くなってしまっている可能性があります。
こんなかんじの画面遷移をつくろうとしたところ、
- [←]のキーが出てくれない
- [←]のキーは出たけれど、onItemClickが呼ばれない
などなど、ハマりどころがあったので、解決方法(になっているのかはわからないけど)メモ。
前提
左から2番めの画面で、左スワイプによるNavigationDrawerは有効にしたかったので、一番左の画面を継承する形で、作りました。
https://github.com/YusukeIwaki/ToolbarNavigationSample/blob/qiita-8fa427af2d2c0d23b46b/app/src/main/java/jp/co/crowdworks/toolbarnavigationsample/Main2Activity.java
(この方針がよろしくない、という可能性が非常に高いが)
解決コード
DrawerToggleでUpナビゲーションを有効にするには…
mDrawerToggle.setDrawerIndicatorEnabled(false); //ハンバーガーアイコンは無効化
mDrawerToggle.setToolbarNavigationClickListener(new View.OnClickListener() {
// [←] をおした時のリスナーは手動で仕掛ける
@Override
public void onClick(View v) {
Main2Activity.this.onBackPressed();
}
});
getSupportActionBar().setDisplayHomeAsUpEnabled(true); // [←] アイコンを有効にする
補足
- DrawerToggleを、 Toolbarをセットしない方のコンストラクタ で初期化すれば、onItemClick(android.R.id.home)は呼ばれる
- 何らかの事情で、DrawerToggleを、Toolbarをセットする方のコンストラクタで初期化する場合は、上記のコードのように手動でリスナーを仕掛ける必要がありそう
Author And Source
この問題について(DrawerToggleとToolbar(appCompat.v7)を組み合わせると、onOptionItemClick(id=android.R.id.home)が呼ばれない?), 我々は、より多くの情報をここで見つけました https://qiita.com/YusukeIwaki/items/8fa427af2d2c0d23b46b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .