Предотвращение появления скрытой строки состояния после блокировки экрана - PullRequest
7 голосов
/ 14 марта 2012

Я хочу скрыть строку состояния в своем приложении, чтобы сделать ее полноэкранной, поэтому я использую этот пример Скрыть панель уведомлений - она ​​работает нормально.Но если я блокирую экран, а затем разблокирую его, появляется строка состояния, как решить эту проблему?

Ответы [ 5 ]

1 голос
/ 08 мая 2018

Добавьте это только к стилям

 <style name="AppTheme" parent="Theme.Design.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="android:statusBarColor">@android:color/transparent</item>
    <item name="android:windowFullscreen">true</item>
</style>
1 голос
/ 14 марта 2012

Чтобы скрыть строку состояния Android и строку заголовка приложения, добавьте в файл манифеста следующее:

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

Пример:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="de.vogella.android.temperature"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".Convert"
                  android:label="@string/app_name"
                  android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
    <uses-sdk android:minSdkVersion="9" />

</manifest>

ОБНОВЛЕНО

Также попробуйте добавить этот код в соответствующее действие после возвращения с экрана блокировки:

public class FullScreen extends Activity {
    @Override
    public 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.main);
    }
}
1 голос
/ 13 июля 2012

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

<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>

В своей деятельности вы можете делать следующее:

public class MyActivity extends Activity {
    private KeyguardLock lock;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Disable lock screen.
        KeyguardManager keyGuardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
        lock = keyGuardManager.newKeyguardLock("MyActivity");
        lock.disableKeyguard();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        // Reenable the lock screen again.
        lock.reenableKeyguard();
    }
}
0 голосов
/ 05 августа 2012

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

this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
0 голосов
/ 14 марта 2012

Запишите этот код в файл mainfest.xml вашего приложения в теге приложения, как показано ниже:

<application  android:name="application package"
            android:label="application name" android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"> 
...