2018 Android, cum se face bara de stare transparenta Android

Androids .help Comunitatea Android Android.

Încerc să fac bara de stare transparentă pe Android 4.4+ Știu cum să devii transparent prin definirea propriului stil:







Acest lucru rezolvă problemele de top cu o bară de stare transparentă și arată normal. Din păcate, există o problemă în partea de jos a "barei de navigare" folosind butoanele sistemului care este roșu și nu este transparent așa cum vreau.

2018 Android, cum se face bara de stare transparenta Android

Am încercat toate opțiunile posibile pentru a obține rezultate când lucrez, dar nu-mi dau seama cum să o rezolv. Singura mea soluție de lucru a stabilit marginea superioară de aproximativ 60dp la elementul rădăcină. Dar această soluție este urâtă și pe diferite dispozitive poate diferi și poate să nu funcționeze.

Am găsit câteva aplicații pe Google Play care funcționează bine cu un fundal transparent, așa că mă întreb cum își fac treaba.







Top 5 răspunsuri

// UPDATE. Bine, e un răspuns destul de vechi. Acum puteți folosi materialul tematic pentru a face față acestei situații și este foarte ușor. Doar setați API țintă pentru 21+, utilizați biblioteca de suport dacă aveți nevoie și creați o temă cu un subiect material în care puteți specifica direct culoarea din bara de stare

Ei bine, se pare că nu pot rezolva problema mea. Acest lucru nu este cel mai bun și soluție de culoare deschisă, dar funcționează o decizie. Dacă cineva în viitor va ști soluție mai bună și mai clară, vă rugăm să-mi spuneți și voi actualiza răspunsul meu / sau marcați răspunsul ca fiind corectă. Dar acum, nu am nici o soluție mai bună decât acest mic hack:

Root element de aspect trebuie să fie RelativeLayout. Nevoia de a urmări aspectul de bază ca ScrollView sau orice alte modele, nu contează. La final, înainte de a închide tag-ul de aspect relativ urmează un LinearLayout martor care a creat același fond ca și bara de acțiuni, precum și o înălțime fixă ​​(înălțimea barei de stare).

Ok, atunci trebuie să setați codul și aceeași înălțime la aspectul liniar ca linia de stare:

Apoi, apelați setStatusBarBackground în metoda OnCreate (). Este o soluție de lucru pentru toate tipurile de dispozitive. Pentru dispozitivele până la KITKAT unde fundalul transparent nu vă permite să ascundeți aspectul liniei.

Întrebări recente







Trimiteți-le prietenilor: