Скрыть панель уведомлений - PullRequest
44 голосов
/ 19 ноября 2010

Кто-нибудь знает, как отключить / скрыть панель уведомлений в верхней части, которые показывают батарею и другие вещи в Android.Любая помощь будет оценена.

РЕДАКТИРОВАТЬ: Пожалуйста, также добавьте, как я могу скрыть ActionBar + NotificationBar для более поздних версий Android.

Ответы [ 8 ]

76 голосов
/ 19 ноября 2010

Вы можете использовать тему в вашем AndroidManifest.xml:

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

или изменить родительский элемент вашего AppTheme на @android: style / Theme.NoTitleBar.Fullscreen, как это

<style name="AppTheme" parent="Theme.NoTitleBar.Fullscreen">
</style>

затем примените эту тему к действиям, которые вы хотите использовать в полноэкранном режиме, например

android:theme="@style/AppTheme"

, или используйте следующий фрагмент кода:

public class FullScreen
    extends android.app.Activity
{
    @Override
    public void onCreate(android.os.Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                                WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setContentView(R.layout.main);
    }
}
24 голосов
/ 11 ноября 2013

Ответы выше также скрывают ActionBar.Если вы намерены только скрыть панель уведомлений, используйте этот код:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

будьте осторожны, чтобы поставить его перед setContentView ().

21 голосов
/ 19 ноября 2010
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    getWindow().requestFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
3 голосов
/ 23 марта 2016
@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
        if (hasFocus) {
            getWindow().getDecorView().setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_FULLSCREEN
                | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
        }
    }
2 голосов
/ 14 октября 2014

Успешно реализована слегка измененная версия предложения @ Martin вместе с пользовательской темой, чтобы избавиться от ОБА и панели состояния и навигации.

public class MyActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    //* Hides Notification Bar
    getWindow().requestFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

    setContentView(R.layout.activity_my);
}

Верхняя часть используется для избавления от строки состояния.Добавьте следующий код в свои @styles как ресурс, чтобы убить также NavBar.

 <resources> <style name="NoNav" parent="@android:style/Theme.Holo.Light">
    <item name="android:windowActionBar">false</item>
    <item name="android:windowNoTitle">true</item>
</style> </resources>

После того, как вы добавите это в свой файл ресурсов, откройте AndroidManifest.xml и переключите тему приложения в "@ style / NoNav".

Разбойники Android UI устранены:)

1 голос
/ 15 октября 2018

Еще один простой вариант - добавить <item name="android:windowFullscreen">true</item> к теме, которую вы будете применять к действиям, для которых не требуется панель уведомлений ...

, например, так.

<style name="AppTheme.Splash">
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowBackground">@drawable/background_splash</item>
</style>

Работает как шарм

1 голос
/ 06 ноября 2015

Вы можете использовать это для 4.1 или более поздних версий.

View decorView = getWindow().getDecorView();    
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
0 голосов
/ 18 мая 2018

вы можете сделать это в методе onCreate ():

View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
ActionBar actionBar = getActionBar();
actionBar.hide();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...