Я хочу установить цвет строки состояния на устройствах Android с targetSdkVersion
19 и выше. Для версий с Lollipop (21) и выше я использовал эту строку кода, которая хорошо работала: getWindow().setStatusBarColor(ContextCompat.getColor(getApplicationContext(), R.color.colorPrimaryDark));
, чтобы установить цвет строки состояния в colorPrimary
моего приложения. Тем не менее, я заметил, что когда я пытаюсь использовать этот API для SDK версии 19 и ниже, мне нужно использовать версию 21. В результате я просмотрел ее и нашел How to change the status bar color in android, которая решила бы мою проблему, но когда я попытаюсь использовать следующий код (Взято из приведенной выше ссылке)Строка состояния с изменением цвета Android KitKat?
public static void setTaskBarColored(Activity context) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
{
Window w = context.getWindow();
w.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
//status bar height
int statusBarHeight = Utilities.getStatusBarHeight(context);
View view = new View(context);
view.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
view.getLayoutParams().height = statusBarHeight;
((ViewGroup) w.getDecorView()).addView(view);
view.setBackgroundColor(context.getResources().getColor(R.color.colorPrimaryTaskBar));
}
}
статус бар цвет установлен, но это вид исчезает из черного на colorPrimary
, что я ожидаю, что это есть. В целом я бы хотел, чтобы цвет строки состояния был все colorPrimary
вместо выцветания от черного до colorPrimary
. Есть ли способ, которым я могу иметь строку состояния, чтобы быть все colorPrimary
для Android-устройств с KitKat загружен? Или есть причина, по которой строка состояния Android KitKat исчезает с черного на цветPrimary? Любой ответ мог бы помочь. Благодаря!