将状态栏和ActionBar隐藏
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
View decorView = getWindow().getDecorView();
int option = View.SYSTEM_UI_FLAG_FULLSCREEN;
//设置系统UI元素的可见性。其中,SYSTEM_UI_FLAG_FULLSCREEN表示全屏的意思,也就是会将状态栏隐藏。
decorView.setSystemUiVisibility(option);
ActionBar actionBar = getSupportActionBar();
if(actionBar != null){
//将actionBar隐藏
actionBar.hide();
}
}
}
将状态栏透明
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
View decorView = getWindow().getDecorView();
//两个Flag必须要结合在一起使用,表示会让应用的主体内容占用系统状态栏的空间
int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
decorView.setSystemUiVisibility(option);
//将状态栏设置成透明色
getWindow().setStatusBarColor(Color.TRANSPARENT);
}
ActionBar actionBar = getSupportActionBar();
if(actionBar != null){
//将actionBar隐藏
actionBar.hide();
}
应用如果有标题栏(或toolbar),标题栏就会被系统的状态栏遮盖一部分
解决方法是
fitsSystemWindows="true"
给 ContentView 的下的ViewGroup设置使其为系统 View 预留空间