在Android API 23中,可以使用以下代码示例解决白色状态栏隐藏视图内容的问题:
android:fitsSystemWindows
属性设置为true
,以确保视图不会被状态栏遮挡。
View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
标志来设置状态栏为浅色。if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
View
元素,并设置其高度为状态栏的高度。
在Java代码中,可以使用以下方法来获取状态栏的高度并设置给View
元素:
private void setStatusBarHeight() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
View statusBarView = findViewById(R.id.statusBarView);
int statusBarHeight = getStatusBarHeight();
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) statusBarView.getLayoutParams();
params.height = statusBarHeight;
statusBarView.setLayoutParams(params);
}
}
private int getStatusBarHeight() {
int result = 0;
int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
result = getResources().getDimensionPixelSize(resourceId);
}
return result;
}
确保在onCreate
方法中调用setStatusBarHeight
方法来设置状态栏的高度。
这样,无论状态栏的颜色是什么,都可以保证视图内容不会被隐藏。