可以在Fragment的onCreateView()方法中设置以下属性来解决此问题:
//设置沉浸式模式,使得Fragment全屏,但状态栏和导航栏不会遮挡Fragment内容 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { getActivity().getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION); }
//设置状态栏和导航栏颜色为透明 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { getActivity().getWindow().setStatusBarColor(Color.TRANSPARENT); getActivity().getWindow().setNavigationBarColor(Color.TRANSPARENT); }
//设置Fragment的背景色或背景图,以填充状态栏和导航栏所占空间 fragmentView.setBackgroundColor(Color.WHITE);
通过上述代码,就能够使得Fragment在全屏状态下,状态栏和导航栏不会遮挡元素。同时,在设置Fragment的背景色或背景图时,要注意将其设置为与整个界面的背景色相同,以达到一致的视觉效果。
下一篇:Android全屏通知