Ich habe erfolgreich eine Navigationsschublade eingerichtet, die das Schubladenlayout verwendet. Ich habe festgestellt, dass diese einfache Codezeile Entfernen des Hamburger Symbol auf eine Zurück-Taste ändert:Verwenden der DrawerLayout Zurück-Taste, um zur vorherigen Aktivität zurückzukehren
mDrawerToggle.syncState();
Allerdings, wenn ich die Zurück-Schaltfläche klicken, um es noch die Navigationsleiste öffnet, wenn ich in der Tat zum vorherigen zurückkehren möchten Aktivität.
Ich weiß, ich könnte einfach einen onClickListener setzen, aber ich dachte, Android hatte eine nativere Art der Navigation zum vorherigen Bildschirm. Hier ist mein Code:‘
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));
Sonstiges:
@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();
}
Ich glaube nicht, dies, da es funktioniert ist keine return-Anweisung in der "if" Teil der bedingten – tccpg288
Richtig, ich habe meinen Code bearbeitet. "wahr", da wir das Ereignis konsumieren. – Shaishav
Nicht die Lösung, es öffnet immer noch die Nav-Schublade – tccpg288