Полноэкранное прозрачное действие (без заголовка и строки состояния) не работает .... почему? - PullRequest
13 голосов
/ 24 декабря 2011

Я делаю пользовательский экран блокировки.

Экран блокировки - это действие, которое я запускаю к ​​тому времени, когда экран выключается.

Однако я не могу сделать так, чтобы это действие было прозрачным и полноэкранным.

Строка состояния продолжает отображаться.

Вот что я делаю в манифесте:

<activity android:name=".activities.LockScreenActivity"  android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"/>

Я также добавляю эти дополнения в onCreate activit:

    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.lock_screen);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

Но, похоже, это не сработает: |

почему

Ответы [ 3 ]

45 голосов
/ 24 декабря 2011

удалить код из onCreate ().используйте это в Manifestfile.

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

, в противном случае создайте тему в соответствии с вашими требованиями.

3 голосов
/ 31 июля 2013

Вам нужно установить флаги перед setContentView, тогда он должен нормально работать

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

setContentView(R.layout.lock_screen);
0 голосов
/ 21 января 2016

Вот оно ссылка (Скрыть строку состояния на Android 4.1 и выше).

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();

Скрыть строку состояния на Android 4.0 и ниже:

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

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // If the Android version is lower than Jellybean, use this call to hide
        // the status bar.
        if (Build.VERSION.SDK_INT < 16) {
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                    WindowManager.LayoutParams.FLAG_FULLSCREEN);
        }
        setContentView(R.layout.activity_main);
    }
...