Android - строка состояния запрещает полный экран

Мое приложение правильно работает в полноэкранном режиме, когда оно запущено. Однако после сворачивания и возврата к приложению строка состояния выскакивает и немного опускает мои представления. Как я могу сохранить строку состояния от перемещения моих представлений?

Вот мой макет:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:myapp="http://schemas.android.com/apk/res/com.example.draw"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
    <com.example.draw.DrawView 
        android:id="@+id/draw"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:visibility="visible"
        android:fitsSystemWindows="false"
    />      
<com.admob.android.ads.AdView     
       android:id="@+id/ad" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content"
       myapp:backgroundColor="#000000"
       myapp:primaryTextColor="#FFFFFF"
       myapp:secondaryTextColor="#CCCCCC"
       android:layout_gravity="bottom"
/>     

Вот часть onCreate моей деятельности:

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

У меня также есть полноэкранная тема в манифесте:

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

Спасибо

4 ответа

Решение

Есть известные ошибки в строке состояния / панели уведомлений.

Увидеть:

http://code.google.com/p/android/issues/detail?id=3674

http://code.google.com/p/android/issues/detail?id=8052

http://code.google.com/p/android/issues/detail?id=5906

Вы можете исправить эту проблему с помощью:

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

(сделать это в onCreate).... обратите внимание, что это сломает программную клавиатуру (IME) - так как текст редактирования больше не может скользить в поле зрения над клавиатурой. Этот флаг препятствует тому, чтобы окно двигалось вообще....

Если вам нужно редактировать текст, чтобы он также работал во время исправления ошибки состояния, вы можете сделать

someEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        public void onFocusChange(View v, boolean hasFocus) {
            if (hasFocus) {
                getWindow().clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
            } else {
                hideKeyboard();
                getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
            }   
        }
    });

Я была такая же проблема. Я изменил активность для вставки и удалил: android:theme="@android:style/Theme.Translucent"

Достаточно просто android:theme="@android:style/Theme.NoTitleBar.Fullscreen" для вашей активности в манифесте. Надеюсь, что его работы

Другие вопросы по тегам