可以像全屏应用程序一样隐藏通知栏,但是允许用户从顶部拖动它吗?
答案 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
);
}
}
在我的自定义相机应用程序中,我使用了这个,它显示了通知栏的全屏摄像机视图,当你从顶部拖动它会显示给你。
快乐编码... :)