Android navigační tlačítka
-
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...


-
@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á.
-
@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é... -
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); } } } -
ve verzi 9.73.1 to ještě nefunguje, tak budu čekat dál, snad se dočkám ...
-
@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.

-
@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.
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login