Как сделать панель навигации прозрачной

Как сделать панель навигации прозрачной на Android 4.4.X и выше?

Я искал в документации, но ничего не нашел об этом.


person ternes3    schedule 01.11.2013    source источник


Ответы (2)


Я взял это из журнала изменений для Android KitKat (4.4):

Полупрозрачные системные панели

Теперь вы можете сделать системные панели частично прозрачными с помощью новых тем, Theme.Holo.NoActionBar.TranslucentDecor и Theme.Holo.Light.NoActionBar.TranslucentDecor. При включении полупрозрачных системных панелей ваш макет будет заполнять область за системными панелями, поэтому вы также должны включить fitsSystemWindows для той части макета, которая не должна закрываться системными панелями.

Если вы создаете пользовательскую тему, установите одну из этих тем в качестве родительской или включите windowTranslucentNavigation и windowTranslucentStatus в вашей теме.

Надеюсь, это поможет вам начать.

person deloreyk    schedule 01.11.2013
comment
На самом деле, если вы используете fitSystemWindows для true в теме, вы можете повлиять на другие представления, такие как всплывающие уведомления и диалоги, см. этот ответ code.google.com/p/android/issues/detail?id=63653 - person Fernando Gallego; 19.12.2013
comment
То, что написано выше, верно тогда, согласно ответу. fitsSystemWindows для части макета, которая не должна закрываться системными панелями. и в ответе: вы должны указывать fitsSystemWindows только в представлениях в ваших макетах или в стилях, которые вы явно применяете к представлениям в ваших макетах, а не в темах. - person deloreyk; 19.12.2013
comment
Nexus 10 не поддерживает его в версии 4.4.4. Иммерсивный режим имеет обычную прозрачность, но TRANS_STATUS и TRANS_NAV игнорируются при отображении реального состояния и навигации. - person robotoaster; 04.07.2014

Я использовал ваш ответ trevor-e, создав собственную тему в файле styles.xml.

<style name="Theme.HomeScreen" parent="android:Theme.Holo.NoActionBar.TranslucentDecor">
 <item name="android:windowBackground">@android:color/transparent</item>
             <item name="android:windowNoTitle">true</item> 
        </style>

а затем вы можете установить тему из манифеста

<activity
            android:name="MyActivity" 
            android:launchMode="singleTask"
            android:screenOrientation="portrait"
            android:theme="@style/Theme.HomeScreen" >
     </activity> 
person roomtek    schedule 14.11.2013