2012-03-14 12 views
6

Chcę ukryć pasek stanu w mojej aplikacji, aby był pełny ekran, więc używam tego przykładu Hide Notification bar - działa dobrze. Ale jeśli zablokuję ekran, a następnie go odblokuję, pojawi się pasek stanu, jak rozwiązać ten problem?Zapobieganie ponownemu pojawianiu się ukrytego paska stanu po zamknięciu ekranu

+0

Czy odnosząc się do Pasek stanu systemu operacyjnego Android u góry ekranu? Ten zawierający żywotność baterii, czas, sygnał Wi-Fi itp.? –

+0

Czy dodajesz ten atrybut motywu w tagu aktywności? może powinieneś spróbować w tagu aplikacji, jeśli nie zrobiłeś tego .. –

+0

Tak, próbowałem, to nie działa – user1049280

Odpowiedz

-2

napisać ten kod w pliku mainfest.xml Twojego aapplication w tagu aplikacji, jak poniżej:

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

cóż, to nie działa – user1049280

1

Aby ukryć Android Pasek stanu i na pasku tytułu aplikacji, należy dodać następujące do pliku manifestu:

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

przykład:

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

AKTUALIZACJA

także spróbować umieścić ten kod w swojej właściwej działalności po powrocie z lockscreen:

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

już to zrobiłem - działa tylko do momentu, kiedy zablokowałem i odblokowałem ekran – user1049280

+0

Zaktualizowałem moją odpowiedź, możesz mieć więcej szczęścia z tym. –

+0

nie, to też nie działa – user1049280

1

Jeżeli zabezpieczenie nie jest problem, można wyłączyć ekran blokady, gdy aplikacja jest uruchomiona. Dodaj następujący wiersz do manifestu:

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

W swojej działalności, można to zrobić w następujący sposób:

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

użyć tego kodu w onCreate() przed setContentView()

this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);