Подтвердить что ты не робот

Android: theme = "@android: style/Theme.NoTitleBar.Fullscreen" работает на уровне приложения, но не на уровне активности. Любая подсказка?

Мне нужно сделать один из моих действий, называемый MyNoStatusBarActivity.java полноэкранным действием.

Я добавил в манифест:

<activity
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
    android:name=".MyNoStatusBarActivity"
    android:noHistory="true"
    android:label="@string/app_name"
    android:configChanges="touchscreen|keyboard|keyboardHidden|navigation|orientation">
    ...
</activity>

И в onCreate моей деятельности:

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_NO_TITLE);

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

Выполнение всего этого просто скрывает панель TITLE, а не панель STATUS.

Также, если я использую тему манифеста на уровне приложения вместо своей активности, она работает, но для всех действий моего приложения, которое не то, что я хочу. Я хочу, чтобы строка состояния отсутствовала только для одного конкретного действия.

Справка будет действительно оценена. Thnx!

P.S: Я в порядке, это поведение больше не доступно в Honeycomb/ICS. Мне нужно это только для 2.2 и 2.3

ИЗМЕНИТЬ

Пробовал все предложения, упомянутые в других решениях SO, но пока не успел. Тема работает, когда применяется к уровню приложения, но не относится к уровню активности.

Я использую HTC WildFire-S, android ver 2.3.5

4b9b3361

Ответ 1

В вашем манифесте xml, на уровне приложения поставьте это:

<application
    ...
    android:theme="@android:style/Theme.NoTitleBar" >
</application>

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

<activity

     android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
     ...
</activity>

Удалите все методы setWindowsFeature или setFlag в onCreate.

Ответ 2

Думаю, вам просто нужно вывести android:theme="@android:style/Theme.NoTitleBar.Fullscreen из mainfest, придерживаться только кодового вызова, он всегда работал у меня. Какое тестовое устройство вы используете?

Также убедитесь, что эти вызовы приходят, прежде чем вы вызываете setContentView(R.layout.xxx), как этот

    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.xxx);

Проверьте весь код для объявлений android:theme, т.е. файлы манифеста и отдельных макетов xml. поскольку это звучит так, как объявление его на уровне приложения работает (поскольку оно отменяет любые последующие объявления темы), но есть что-то, переопределяющее ваш запрос уровня активности.

Попробуйте выполнить поиск по всему проекту для "android: theme" и удалите все, что вам не нужно, на 100%, проверьте его таким образом

Ответ 3

Я помещаю это в свою деятельность:

requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_splash);

И в моем манифесте я не изменяю, это мое, без изменений:

android:theme="@style/AppTheme"

В моей активности xml:

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

Ответ 4

Это сделает трюк:

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_NO_TITLE);

    getWindow().setFlags(
        WindowManager.LayoutParams.FLAG_FULLSCREEN,
        WindowManager.LayoutParams.FLAG_FULLSCREEN);

    setContentView(R.layout.activity_main);
}

Ответ 5

Это устранит вашу проблему.

просто измените ваш манифест @android: style... для @style/..

<application
    ...
    android:theme="@style/Theme.AppCompat.NoActionBar">
    ...
</application>