0
引き出しレイアウトを利用したナビゲーションドロワーを正常にセットアップしました。私は、コードのこの単純な行を削除すると、バックボタンにハンバーガーのアイコンを変更することを見出した。しかしDrawerLayout戻るボタンを使用して前のアクティビティに戻る
mDrawerToggle.syncState();
、私は以前に戻したいとき確かに私はそれはまだナビゲーションの引き出しを開いている[戻る]ボタンをクリックしたときアクティビティ。
私は単純にonClickListenerを設定することができますが、Androidは以前の画面にナビゲートするよりネイティブな方法があると考えました。ここに私のコードは次のとおりです。」
のonCreate:
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerToggle = new ActionBarDrawerToggle(
this, /* host Activity */
mDrawerLayout, /* DrawerLayout object */
toolbar, /* nav drawer icon to replace 'Up' caret */
R.string.drawer_open, /* "open drawer" description */
R.string.drawer_close /* "close drawer" description */
) {
/**
* Called when a drawer has settled in a completely closed state.
*/
public void onDrawerClosed(View view) {
super.onDrawerClosed(view);
isOpen = false;
}
/**
* Called when a drawer has settled in a completely open state.
*/
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
isOpen = true;
}
};
mDrawerLayout.addDrawerListener(mDrawerToggle);
mDrawerList = (ListView) findViewById(R.id.left_drawer);
ArrayList<String> drawerTitleArray = new ArrayList<>();
drawerTitleArray.add(0, "TEST");
drawerTitleArray.add(1, "TEST 1");
// Set the adapter for the list view
mDrawerList.setAdapter(new ArrayAdapter<String>(this,
R.layout.drawer_list_item, drawerTitleArray));
その他:引き出しの活動のあなたのonOptionsItemSelected()
で
@Override
public boolean onOptionsItemSelected(MenuItem item){
return mDrawerToggle.onOptionsItemSelected(item) || super.onOptionsItemSelected(item);
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
// Sync the toggle state after onRestoreInstanceState has occurred.
mDrawerToggle.syncState();
}
私は、これはのようにそこに動作するとは思いません条件文の "if"部分にreturn文がありません – tccpg288
正解、私のコードを編集しました。私たちがイベントを消費しているので、「true」です。 – Shaishav
解決策ではありませんが、引き続きnav drawerを開いています – tccpg288