Я пытаюсь внедрить Android 15 (API 35) Edge to Edge UI, его внешний вид, за исключением цвета стержня состояния, который у меня есть с навигационным ящиком (с панелью инструментов) в Android 13 или ниже. Я пытался следовать официальному руководству и блогу из Chris, но независимо от того, что я делаю, я не могу изменить свой цвет статуса, как требуется. /> Метод, который я использую. < /p>
Я пытаюсь внедрить Android 15 (API 35) Edge to Edge UI, его внешний вид, за исключением цвета стержня состояния, который у меня есть с навигационным ящиком (с панелью инструментов) в Android 13 или ниже. Я пытался следовать официальному руководству и блогу из Chris, но независимо от того, что я делаю, я не могу изменить свой цвет статуса, как требуется. /> Метод, который я использую. < /p> [code]private void edgeToedge() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R){ EdgeToEdge.enable(this);
WindowCompat.setDecorFitsSystemWindows(getWindow(), false); ViewCompat.setOnApplyWindowInsetsListener(toolbar, new OnApplyWindowInsetsListener() { @NonNull @Override public WindowInsetsCompat onApplyWindowInsets(@NonNull View v, @NonNull WindowInsetsCompat insets) { // Retrieve the insets for the system bars (status bar, nav bar, etc.) Insets systemBarsInsets = insets.getInsets(WindowInsetsCompat.Type.systemBars()); // Update layout params: add a top margin equal to the status bar height. ViewGroup.LayoutParams lp = v.getLayoutParams(); if (lp instanceof ViewGroup.MarginLayoutParams) { ViewGroup.MarginLayoutParams marginParams = (ViewGroup.MarginLayoutParams) lp; marginParams.topMargin = systemBarsInsets.top; v.setLayoutParams(marginParams); } // Alternatively, you can update padding if that better suits your design: // v.setPadding(v.getPaddingLeft(), originalPaddingTop + systemBarsInsets.top, // v.getPaddingRight(), v.getPaddingBottom());