隐藏通知栏

时间:2010-11-19 06:40:14

标签: android

任何人都知道如何禁用/隐藏顶部的通知栏,显示电池和Android中的其他东西。 任何帮助将不胜感激。

编辑:还请添加如何为以后的Android版本隐藏ActionBar + NotificationBar。

9 个答案:

答案 0 :(得分:76)

您可以在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);
    }
}

答案 1 :(得分:24)

上面的答案也隐藏了ActionBar。 如果您打算隐藏通知栏,请使用以下代码:

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

小心将它放在setContentView()之前。

答案 2 :(得分:21)

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 :(得分:3)

@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);
        }
    }

答案 4 :(得分:2)

成功实施了@ 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 bloatware被淘汰:)

答案 5 :(得分:1)

您可以将此用于4.1或更高版本。

View decorView = getWindow().getDecorView();    
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);

答案 6 :(得分:0)

你可以在onCreate()方法中这样做:

    @GetMapping("/orders")
    public ResponseEntity getAllOrders(@RequestParam(value = "page", defaultValue = "0", required = false) Integer page,
                                       @RequestParam(value = "size", defaultValue = "30", required = false) Integer size,
                                       @RequestParam(value = "sort", defaultValue = "orderNumber", required = false) String sort) {
        return execute(() -> service.getAllOrders(PageRequest.of(page, size, ASC, sort)));
    }

答案 7 :(得分:0)

另一个简单的选择是在主题上添加<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>

像魅力一样工作

答案 8 :(得分:0)

此答案适用于喜欢简约和简化的单行代码的android开发人员。如果您打算隐藏通知栏,请使用以下代码:

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

小心将其放在所需活动的on.create()函数中的setContentView()之前。