【问题标题】:Cant Hide Notification bar in Android 4.3 API 18无法在 Android 4.3 API 18 中隐藏通知栏
【发布时间】:2013-08-23 07:04:17
【问题描述】:

4.3 之前,

@android:style/Theme.Black.NoTitleBar  

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

完美地隐藏通知栏。但在 4.3 中,虽然没有使用此代码显示栏,但在顶部滑动会带来栏

【问题讨论】:

    标签: android android-notification-bar android-titlebar android-4.3-jelly-bean


    【解决方案1】:

    我发现没有简单的方法可以做到这一点。所以我使用了一些反射并且它工作正常。

    Object service  = getSystemService("statusbar");
    Class<?> statusbarManager = Class.forName("android.app.StatusBarManager");
    Method collapse = statusbarManager.getMethod("collapsePanels");
    collapse .setAccessible(true);
    collapse .invoke(service);
    

    不要忘记在清单中添加它。

    <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
    

    【讨论】:

    • 这是否只在当前活动中隐藏栏?
    • 我在每个Activity的触摸监听器上调用它。
    • 假设您从您的活动中调用另一个应用程序,有什么办法可以隐藏那些调用的应用程序中的通知栏?
    • 你可以为它做一个后台服务
    • 好的,我不知道怎么做,但这是一个很好的起点,谢谢。
    【解决方案2】:

    您是否尝试过使用 Theme.Black.NoTitleBar.Fullscreen?

    【讨论】:

    • 查看图片。通知栏已隐藏,但屏幕顶部的手势将其拉回来。
    • 你说你使用的是 android:style/Theme.Black.NoTitleBar,而不是 android:style/Theme.Black.NoTitleBar.Fullscreen。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多