autojs 使用webviewandroidviewWindowManagerLayoutParamsFLAG_LAYOUT_NO_LIMITS 还有其他哪些参数 分别是什么含义然后将状态栏文字设置为透明色
除了FLAG_LAYOUT_NO_LIMITS之外,还有一些其他常用的WindowManager.LayoutParams的标志参数,它们的含义如下:
- FLAG_FULLSCREEN:全屏标志,隐藏状态栏和导航栏。
- FLAG_KEEP_SCREEN_ON:屏幕常亮标志,保持屏幕常亮。
- FLAG_NOT_FOCUSABLE:不可获取焦点标志,窗口不会获取输入焦点。
- FLAG_NOT_TOUCHABLE:不可触摸标志,窗口不接收触摸事件。
- FLAG_DIM_BEHIND:背景变暗标志,窗口后面的内容变暗。
- FLAG_NOT_TOUCH_MODAL:不拦截触摸事件标志,窗口不会拦截触摸事件,点击窗口外面的区域时,事件会传递给下面的窗口。
- FLAG_LAYOUT_IN_SCREEN:窗口布局在屏幕内标志,窗口会布局在屏幕内,不会被状态栏和导航栏遮挡。
- FLAG_LAYOUT_NO_LIMITS:窗口没有限制标志,窗口可以超出屏幕范围。
- FLAG_TRANSLUCENT_STATUS:状态栏半透明标志,状态栏会变为半透明状态。
- FLAG_TRANSLUCENT_NAVIGATION:导航栏半透明标志,导航栏会变为半透明状态。
要将状态栏文字设置为透明色,可以使用以下代码:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
View decorView = getWindow().getDecorView();
int flags = decorView.getSystemUiVisibility();
flags |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
decorView.setSystemUiVisibility(flags);
getWindow().setStatusBarColor(Color.TRANSPARENT);
}
这段代码会将状态栏文字设置为透明色,并且适配Android 6.0以上的系统,因为在Android 6.0以上的系统中,状态栏文字默认是黑色的,需要设置SYSTEM_UI_FLAG_LIGHT_STATUS_BAR标志来改变文字颜色
原文地址: https://www.cveoy.top/t/topic/iavW 著作权归作者所有。请勿转载和采集!