Недавно я использовал этот код Java в Main_Activity:
(getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS))
для строки состояния Прозрачная цель. Все прошло хорошо, но моя панель навигации Android также стала прозрачной. Теперь мне нужна только прозрачная строка состояния, но не панель навигации.




У вас есть два варианта: во-первых, я рекомендую вам использовать внешнюю библиотеку для стилизации строки состояния, например библиотеку StatusBarUtil, которая позволяет выполнить ваше требование всего в одной строке:
StatusBarUtil.setTransparent(Activity activity) // yo be placed in every activity you want the status bar to be transparent in
И эта библиотека не влияет на панель навигации.
Просто сначала убедитесь, что библиотека реализована на уровне вашего приложения Грейдл:
implementation'com.jaeger.statusbarutil:library:1.5.1'
Второй вариант — перейти к настройке макета, как указано в этот учебник, вы можете добавить в свой style.xml следующее:
<style name = "AppTheme.TransparentTheme">
<item name = "android:windowDrawsSystemBarBackgrounds">true</item>
<item name = "android:statusBarColor">@android:color/transparent</item>
</style>
И примените этот стиль к Activity в манифесте:
<activity
android:name = ".HomeActivity"
android:theme = "@style/AppTheme.TransparentTheme">
</activity>
Как описано в учебнике:
I have set android:windowDrawsSystemBarBackgrounds to true.
This is a flag whose description is given below:
Flag indicating whether this Window is responsible for drawing the background for the system bars. If true and the window is not floating, the system bars are drawn with a transparent background and the corresponding areas in this window are filled with the colors specified in {@link android.R.attr#statusBarColor} and {@link android.R.attr#navigationBarColor}. Corresponds to {@link android.view.WindowManager.LayoutParams#FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS}.
Не забудьте добавить атрибут android:fitsSystemWindows = "true" в верхний корень макета активности.
Вы правы, просто забыл добавить android:fitsSystemWindows = "true" в свой ответ, посмотрите последнюю строку, которую я добавил в свой ответ.
То же не работает. Я добавляю этот код в свою часть макета ограничения Activity_mainLayout.
вы добавили его в основной корневой элемент активности? если это так, и он все еще не работает, я советую вам попробовать упомянутую мной библиотеку.
Помните, что корневой макет должен быть CoordinatorLayout в варианте 2.
Это не работает . Я использую Второй вариант. Это делает мою строку состояния белым цветом