如何隐藏通知栏,但允许从顶部拖动?

时间:2013-05-26 19:39:03

标签: android

可以像全屏应用程序一样隐藏通知栏,但是允许用户从顶部拖动它吗?

3 个答案:

答案 0 :(得分:1)

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

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

    setContentView(R.layout.NAME_OF_YOUR_ACTIVITY);
    getSupportActionBar().hide();

将此代码放入您的java活动并替换NAME_OF_YOUR_ACTIVITY,而不是全屏活动。

答案 1 :(得分:0)

没有这样的SDK支持,但您可以通过一些变通方法编码来实现。

您可以使用WindowManager在屏幕顶部注入一个不透明的浮动视图,该视图与其余布局相匹配,看起来就像是其中的一部分。

确保将注入的View设置为忽略触摸事件,并将其传递给低于它的任何内容。这应该允许用户向下拖动通知栏而不实际在屏幕上显示它。好吧,它仍然可见,只是被您的浮动视图覆盖。

请注意,这将要求您的活动主题全屏。

答案 2 :(得分:0)

是的,可以将以下代码放入您的活动中。

 @Override
 public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    View view = getWindow().getDecorView();
    if (hasFocus) {
        view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
                | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_FULLSCREEN
                | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
        );

    }
}

在我的自定义相机应用程序中,我使用了这个,它显示了通知栏的全屏摄像机视图,当你从顶部拖动它会显示给你。
快乐编码... :)