Bilah status Android tembus cahaya tetapi bilah navigasi tidak tembus cahaya (jika ada)

Saya mencoba membuat splash screen untuk aplikasi Android dengan artikel ini: Layar Pembuka dengan Cara yang Benar. Seperti yang disebutkan dalam artikel, saya membuat LayerDrawable dengan dua lapisan: bitmap latar belakang dan logo (juga bitmap). Logo harus ditempatkan di bagian bawah layar dengan indentasi 32dp, misalnya. Ini drawable saya:

<item
    android:drawable="@drawable/splash_image" />

<item
    android:id="@+id/logo"
    android:bottom="@dimen/margin_splash">

    <bitmap
        android:gravity="bottom|center"
        android:src="@drawable/logo_green" />
</item>

I pointed this drawable as android:windowBackground param in my splash activity theme. I also want to have transparent status bar when splash screen is shown on devices where this feature is supported (API >=19), so I created two resource files for different android versions and in values-v19\styles.xml I pointed flag android:windowTranslucentStatus as true. Here my values/styles.xml and values-v19/styles.xml:

nilai/styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowBackground">@drawable/bg_splash</item>
    </style>
</resources>

dan
values-v19/styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowBackground">@drawable/bg_splash</item>
        <item name="android:windowTranslucentStatus">true</item>
    </style>
</resources>

Namun pada beberapa perangkat Android dengan Soft NavigationBar, logo saya tumpang tindih. Logo tumpang tindih dengan NavigationBar
Saya mencoba menunjukkan tanda android:windowTranslucentNavigation sebagai salah tetapi tidak berhasil.

Apakah ada cara untuk membuat Android Soft NavigationBar transparan bersama dengan bilah status transparan, atau saya perlu mendeteksi ketersediaan Soft NavigationBar dalam metode onCreate aktivitas splash saya dan memperbarui LayerDrawable saya dengan menambahkan indentasi bawah untuk logo ke ketinggian NavigationBar?

Terima kasih.


person ibogolyubskiy    schedule 26.02.2017    source sumber


Jawaban (2)


Apakah kamu mencoba ini?

<item name="android:navigationBarColor">@android:color/transparent</item> <item name="android:windowTranslucentStatus">false</item> <item name="android:windowTranslucentNavigation">false</item>

Anda juga dapat menambahkan sedikit bantalan ke bawah pada item bitmap Anda di lapisan yang dapat digambar.

person albeee    schedule 26.02.2017

Saya mengalami masalah yang sama dan menyelesaikan masalah ini dengan mengatur atribut berikut.

<item name="android:windowDrawsSystemBarBackgrounds">false</item>

Atribut ini disetel ke direktori value-v21.

person angelo yan    schedule 18.04.2017