Android - создание полноэкранного режима со статусной строкой поверх нее

Я хочу сделать свою деятельность полноэкранной со строкой состояния в верхней части, например, на следующем рисунке:

enter image description here

Я использовал этот код в manifest внутри тега activity:

'android:theme="@style/Theme.AppCompat.Light.NoActionBar"'

Но мой взгляд не начинается со строки состояния & это выглядит так:

enter image description here

Как я могу сделать мой activity похожим на первый?

Ответ 1

Я знаю, что парень, задающий вопрос, возможно, нашел свое решение, но для людей, которые все еще ищут решение, это очень простое решение, но с одной стороны у него есть ограничение до Kitkat поэтому условие добавляется

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

    getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
                      WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}

Ответ 2

Добавьте их в свою тему базового приложения в styles.xml

<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>

И добавьте следующий атрибут в родительский макет:

android:fitsSystemWindows="false"

Надеюсь, это поможет.

Ответ 3

Если вы не хотите, чтобы ваша прозрачная навигация была прозрачной, вот код, чтобы просто сделать прозрачным строку состояния

В вашей теме:

    <item name="android:statusBarColor">@android:color/transparent</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowTranslucentStatus">true</item>

В вашей деятельности onCreate:

Window window = getWindow();
WindowManager.LayoutParams winParams = window.getAttributes();
winParams.flags &= ~WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
window.setAttributes(winParams);
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);

Ответ 4

вы можете использовать этот код после onCreate

   setTheme(android.R.style.Theme_Black_NoTitleBar_Fullscreen);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        if (getSupportActionBar() != null) {
            getSupportActionBar().hide();
        }

ваша активность будет полной: со статусом bar :)

Ответ 5

Попробуйте это

 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>

Надеюсь, что это поможет

Ответ 6

Ответ @tahsinRupam верен и протестирован на пост-версии Kitkat.

<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>

Если вы хотите использовать его только для определенной активности, создайте стиль и прикрепите его в своем стиле манифеста, как это.

<activity
    android:name=".MainActivity"
    android:screenOrientation="portrait"
    android:theme="@style/Activity.Fullscreen.Theme" />

<style name="Activity.Fullscreen.Theme" parent="MyMaterialTheme.Base">  
    <item name="android:windowTranslucentStatus">true</item>
    <item name="android:windowTranslucentNavigation">true</item>
</style>

Большие пальцы вверх на origal @tahsinRupam

Счастливые кодировки Приветствия!

Ответ 7

Поместите этот код в свою активность onCreate, это скроет строку состояния

View decorView = getWindow().getDecorView();
// Hide the status bar.
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
// Remember that you should never show the action bar if the
// status bar is hidden, so hide that too if necessary.
ActionBar actionBar = getActionBar();
actionBar.hide();