gpt4 book ai didi

java - window.clearFlags(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR) 无法从 fragment 内部工作

转载 作者:行者123 更新时间:2023-12-02 10:04:22 25 4
gpt4 key购买 nike

我正在尝试清除 View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR 标志,以便状态栏图标成为我的深色状态栏背景的默认白色。

问题是,如果我导航到 Activity ,以下代码可以完美工作,但如果我对 fragment 使用相同的代码,则它不起作用。

For Clearing Flags I am using this: 
getActivity().getWindow().clearFlags(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
getActivity().getWindow().setStatusBarColor(getResources().getColor(R.color.my_calender_appbar_background));

For Setting Flag:getActivity().getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); getActivity().getWindow().setStatusBarColor(getResources().getColor(R.color.white));

最佳答案

启用 windowLightStatusBar(以编程方式,例如在 Utils 类中):

public static void setLightStatusBar(View view,Activity activity){


if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {

int flags = view.getSystemUiVisibility();
flags |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
view.setSystemUiVisibility(flags);
activity.getWindow().setStatusBarColor(Color.WHITE);
}
}

要将 StatusBar 恢复到之前的状态:

public static void clearLightStatusBar(Activity activity) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
Window window = activity.getWindow();
window.setStatusBarColor(ContextCompat
.getColor(activity,R.color.colorPrimaryDark));
}
}

关于java - window.clearFlags(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR) 无法从 fragment 内部工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55412173/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com