Actionbar Backbutton

  • Actionbar Backbutton

    Moin,

    ich hätte mal die Frage wie es mir möglich ist in der Action bar statt des Navigation Drawer Icons bei Bedarf einen Pfeil anzuzeigen und bei einem Click auf diesen zu reagieren?

    Für Interessierte...
    Hintergrund Gedanke:

    Ich habe eine Activity mit einem Navigation Drawer, der je nach Auswahl ein anderes Fragment anzeigt, dass natürlich weiterhin die Möglichkeit bietet den Drawer auszuklappen...
    Jetzt ist es aber so das ich auf einem Fragment die Möglichkeit habe eine "Art" Dialog zu öffnen, der ebenfalls ein ganz normales (List)Fragment ist, dieses soll aber nicht das Menu anzeigen können, sondern einen Pfeil mit dem ich wieder auf das Parent-Fragment zurück komme... das ganze Konzept funktioniert bereits mit den Tasten des Phones, was jetzt noch fehlt ist die Möglichkeit dieses Icon anzuzeigen und auf das Click-Event zu reagieren und selbstverständlich die Action bar wieder wie am Anfang zu gestalten.

    Ich finde wirklich nichts hilfreiches im Internet, dass bei mir funktioniert..

    Wenn jemand eine Idee hat oder sogar die Lösung, wäre ich sehr dankbar!

    Gruß Adrian :(
  • Ok habe das Problem selber mit der Implementation folgender Klasse gelöst...

    Java-Quellcode: ActionBarSettings

    1. public class ActionBarSettings {
    2. private static DrawerLayout drawerLayout;
    3. private static ActionBarDrawerToggle drawerToggle;
    4. private static Toolbar toolbar;
    5. public static void setValues(DrawerLayout layout, ActionBarDrawerToggle toggle, Toolbar bar) {
    6. drawerLayout = layout;
    7. drawerToggle = toggle;
    8. toolbar = bar;
    9. }
    10. public static void enableUpButton(final AppCompatActivity activity) {
    11. if (drawerLayout != null && drawerLayout != null && toolbar != null) {
    12. drawerToggle.setDrawerIndicatorEnabled(false);
    13. drawerToggle.setToolbarNavigationClickListener(new View.OnClickListener() {
    14. @Override
    15. public void onClick(View v) {
    16. activity.onBackPressed();
    17. }
    18. });
    19. Toolbar t = toolbar;
    20. t.setNavigationIcon(activity.getDrawerToggleDelegate().getThemeUpIndicator());
    21. drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
    22. }
    23. }
    24. public static void disableUpButton(final AppCompatActivity activity) {
    25. drawerToggle.setDrawerIndicatorEnabled(true);
    26. Toolbar t = toolbar;
    27. drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
    28. }
    29. }
    Alles anzeigen



    Das Fragment kann das dann folgender Maßen verwenden..


    Java-Quellcode: MyFragment

    1. public class MyFragment extends Fragment {
    2. @Override
    3. public void onResume() {
    4. super.onResume();
    5. ActionBarSettings.enableUpButton((AppCompatActivity) getActivity());
    6. }
    7. @Override
    8. public void onDestroyView() {
    9. ActionBarSettings.disableUpButton((AppCompatActivity) getActivity());
    10. super.onDestroyView();
    11. }
    12. }
    Alles anzeigen

    LG
    Adrian