it-swarm.com.ru

Android - Создание активности на весь экран с верхней строкой состояния

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

 enter image description here

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

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

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

 enter image description here

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

22
Utshaw

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

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

    getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
                      WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}
24
Vishwajit Palankar

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

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

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

Android:fitsSystemWindows="true"

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

19
tahsinRupam

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

В вашей теме:

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

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

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);
5
Pablo Cegarra

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

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

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

1
Mostafa Pirhayati

@ tahsinRupam ответ правильный и проверен на версии PostKit.

<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>

Недурно на оригинале @ tahsinRupam  

Удачи!

0
ralphgabb

Попробуй как это

 <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>

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

0
Sumaniya Alabha