我在 CoordinatorLayout 为父布局的情况下,想要实现 「沉浸式一体栏的情况」如下图
这样的效果时,顶部的「状态栏」一直存在占位现象。
最终解决方案
一、去掉布局中设置的
android:fitsSystemWindows="true"
二、在 Activity onCreate() 中 添加如下设置代码
this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
除了这两行,还需要再添加
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.root_container_layout), new android.support.v4.view.OnApplyWindowInsetsListener() {
@Override
public WindowInsetsCompat onApplyWindowInsets(View v, WindowInsetsCompat insets) {
return insets.consumeSystemWindowInsets();
}
});
}
即可。
请看效果图
网友评论