Community mapy.com Mapy.com Community
    • Categories
    • Popular
    • Categories
    • Login

    Android navigační tlačítka

    Scheduled Pinned Locked Moved Community Support
    7 Posts 3 Posters 417 Views 4 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • i.carI Offline
      i.car Backseat navigator
      last edited by

      Mám problém s bílou Android navigační lištou. Nic nevidím, protože jsou bílé tlačítka na bílém podkladu. Preferoval bych černou lištu a bílé tlačítka i když má člověk nastaven white režim. Anebo když už musí být ta bílá, tak alespoň černé ty tlačítka. Ostatní aplikace s tím nemají problém. Přikládám obrázky. Je to sice starší telefon XIAOMI s androidem 10, ale fungovat by to mohlo i tam...
      Screenshot_2025-10-08-17-34-44-452_com.android.chrome.jpg
      Screenshot_2025-10-08-17-24-22-639_cz.seznam.mapy.jpg

      EwelinaE 1 Reply Last reply Reply Quote 0
      • EwelinaE Offline
        Ewelina Mapy.com Team Premium @i.car
        last edited by

        @i.car Dobrý den, jakou máte prosím verzi aplikace? Kontroluji barvu navigačních tlačítek na Androidu 12 a 13 (nejnovější verze aplikace) a barva je šedá, dobře viditelná.

        i.carI Josef BoleslavJ 2 Replies Last reply Reply Quote 0
        • i.carI Offline
          i.car Backseat navigator @Ewelina
          last edited by

          @Ewelina
          9.72.0, což je předpokládám poslední.
          Verze androidu je 10.
          Na novém telefonu s Android 15 mám tlačítka také šedé, ale na té desítce jenom u mapy aplikace mám takové bílé...

          1 Reply Last reply Reply Quote 0
          • i.carI Offline
            i.car Backseat navigator
            last edited by

            Takže tento kód funguje mi funguje. Doporučuji to použít a dát to třebas i na uživatelské nastavení ať si každý vybere co je libo (pokud nevybere nic, necháte jak máte teď, bez jakéhokoliv volání kódu):

             private void setLightNavBar() {
                    // bílý podklad + tmavé ikony
                    setNavBarColor(Color.WHITE, true);
                }
            
                private void setDarkNavBar() {
                    // černý podklad + světlé ikony
                    setNavBarColor(Color.BLACK, false);
                }
            
                private void setTransparentNavBar() {
                    Window w = getWindow();
            
                    // 1) Musíme povolit "draw behind" (obsah sahá pod navigaci)
                    View decor = w.getDecorView();
                    int vis = decor.getSystemUiVisibility();
                    vis |= View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
                    // zrušíme flag pro světlé ikony (většinou na průhledném chceme světlé ikony)
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                        vis &= ~View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR;
                    }
                    decor.setSystemUiVisibility(vis);
            
                    // 2) Ujistíme se, že systém kreslí barvy
                    w.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
                    w.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
            
                    // 3) Transparentní bar
                    w.setNavigationBarColor(Color.TRANSPARENT);
            
                    // 4) API 30+: nastavíme appearance přes platformní WindowInsetsController
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
                        WindowInsetsController ic = w.getInsetsController();
                        if (ic != null) {
                            // zde 0 = tmavé ikony NE, tedy světlé ikony (často lepší na průhledném)
                            ic.setSystemBarsAppearance(0, WindowInsetsController.APPEARANCE_LIGHT_NAVIGATION_BARS);
                        }
                    }
            
                }
            
                // ----------------------
                // pomocné metody
                // ----------------------
                private void setNavBarColor(int color, boolean useLightIcons) {
                    Window w = getWindow();
                    View decor = w.getDecorView();
            
                    // 1) Odebereme "draw-behind" layout flags (pokud byly)
                    int vis = decor.getSystemUiVisibility();
                    vis &= ~View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;
                    vis &= ~View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
            
                    // 2) Správně nastavíme flag pro světlé ikony (API 26+)
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                        if (useLightIcons) {
                            vis |= View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR;
                        } else {
                            vis &= ~View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR;
                        }
                    }
            
                    decor.setSystemUiVisibility(vis);
            
                    // 3) Ujistíme se že systém kreslí barvy (ne translucent)
                    w.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
                    w.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
            
                    // 4) Nastavíme barvu navigační lišty
                    w.setNavigationBarColor(color);
            
                    // 5) API 30+: preferuj platformní API pro appearance (spolehlivější)
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
                        WindowInsetsController ic = w.getInsetsController();
                        if (ic != null) {
                            int appearance = useLightIcons ? WindowInsetsController.APPEARANCE_LIGHT_NAVIGATION_BARS : 0;
                            ic.setSystemBarsAppearance(appearance, WindowInsetsController.APPEARANCE_LIGHT_NAVIGATION_BARS);
                        }
                    }
                }
            
            1 Reply Last reply Reply Quote 1
            • i.carI Offline
              i.car Backseat navigator
              last edited by

              ve verzi 9.73.1 to ještě nefunguje, tak budu čekat dál, snad se dočkám ...

              1 Reply Last reply Reply Quote 0
              • Josef BoleslavJ Offline
                Josef Boleslav Premium @Ewelina
                last edited by

                @Ewelina Dobrý den, mám podobný problém, Samsung S23, Android 16, poslední verze, Mapy 9.73. 1. Dělalo to i na předešlé verzi., špatně čitelné vrchní ikonky. 1000067324.jpg

                i.carI 1 Reply Last reply Reply Quote 0
                • i.carI Offline
                  i.car Backseat navigator @Josef Boleslav
                  last edited by

                  @Josef-Boleslav
                  Myslím, že by bylo opravdu vhodné dát uživateli na výběr jestli chce bílé, černé anebo průhledné někde v nastavení, protože jak se navigační tlačítka a horní menu chovají velmi závisí na výrobci telefonu, resp. verzí androidu a jak ji zasvinil svými customizacemi. Ať se budete snažit jakkoliv, univerzál nenajdete, volba v nastavení povede naprosté spokojenosti všech.

                  1 Reply Last reply Reply Quote 2
                  • First post
                    Last post