Intereting Posts
Есть ли какие-либо ограничения в использовании «/ proc / mounts» в android Как сохранить регистрационную информацию о приложении Android? Отправьте ссылку на группу whatsapp непосредственно из браузера (или из приложения) Как запустить AVD Manager на Mac Как удалить неиспользуемый строковый ресурс для всех конфигураций в Android Studio? Как реализовать салфетку между Фрагментами? Как избежать черного экрана в андроиде во время загрузки моего приложения? Android: загрузка файла с защитой от NTLM-аутентификации Стилирование диалогового окна параметров системного курсора и выбора текста Как изменить стиль по умолчанию EditText Может ли устройство bluetooth 4.0 отправлять данные на устройство bluetooth 2.0? Начало нового действия в onCreate работает только с задержкой Я получаю «Ошибка: не найден ресурс, который соответствует указанному имени (при значении со значением @ integer / google_play_services_version)» Создайте xml-файл и сохраните его во внутреннем хранилище android В Android, как передать предопределенную поверхность для MediaCodec для кодирования?

Диалог на Android KitKat, похоже, вырезано

Я использовал тему диалога для Activity, и он отлично работает на Android <= 4.3, но не на последней версии KitKat 4.4. Вот скриншот проблемы:

dialog android 4.4 problem

Верх макета отсутствует. Вы можете видеть, что границы, кажется, сокращены.

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

Solutions Collecting From Web of "Диалог на Android KitKat, похоже, вырезано"

Вы можете решить проблему, которая будет вырезана из кода ниже.

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

Вы должны расширить диалог и в вызове onCreate следующим способом:

 @TargetApi(14) public void toggleHideBar() { if (Build.VERSION.SDK_INT < 18) { return; } // The UI options currently enabled are represented by a bitfield. // getSystemUiVisibility() gives us that bitfield. int uiOptions = getWindow().getDecorView().getSystemUiVisibility(); int newUiOptions = uiOptions; boolean isImmersiveModeEnabled = ((uiOptions | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY) == uiOptions); if (isImmersiveModeEnabled) { Log.d("dialog", "Turning immersive mode mode off."); } else { Log.d("dialog", "Turning immersive mode mode on."); } // Status bar hiding: Backwards compatible to Jellybean if (Build.VERSION.SDK_INT >= 16 && (newUiOptions & View.SYSTEM_UI_FLAG_FULLSCREEN) <= 0) { newUiOptions ^= View.SYSTEM_UI_FLAG_FULLSCREEN; } // Immersive mode: Backward compatible to KitKat. // Note that this flag doesn't do anything by itself, it only augments the behavior // of HIDE_NAVIGATION and FLAG_FULLSCREEN. For the purposes of this sample // all three flags are being toggled together. // Note that there are two immersive mode UI flags, one of which is referred to as "sticky". // Sticky immersive mode differs in that it makes the navigation and status bars // semi-transparent, and the UI flag does not get cleared when the user interacts with // the screen. if (Build.VERSION.SDK_INT >= 18 && (newUiOptions & View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY) <= 0) { newUiOptions ^= View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY; } getWindow().getDecorView().setSystemUiVisibility(newUiOptions); } 

Наконец, я попытался что-то сделать с новым режимом FullScreen Immersive, доступным в Android 4.4. Android FullScreen

Просто поместите это в onResume из «диалогового» действия, и это позволит вам использовать диалоги в полноэкранном режиме без верхней резки 🙂

Изменить: добавлена ​​проверка совместимости для целевой версии, setSystemUiVisibility реализована в Api 11, но, похоже, она нужна для исправления только для Android 4.4)

 // Only for Api >=4.0 if (android.os.Build.VERSION.SDK_INT >= 16) { int mUIFlag = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION // I removed this | View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LOW_PROFILE | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION; // and this to keep the navigation bar getWindow().getDecorView().setSystemUiVisibility(mUIFlag); } 

У меня аналогичная проблема, но с использованием настраиваемого диалога. К сожалению, я не мог опубликовать свой скриншот здесь.

Я тестировал несколько вариантов и выглядел так, как работает родительская активность в полноэкранном режиме. Если я удалю следующий код, диалог, похоже, будет работать нормально.

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

Я заметил это после получения обновления 4.4 KitKat на Google Nexus 7 (первая версия). Кроме того, это не имеет никакого значения, если у меня есть название диалога или нет.

Просто добавьте эту строку кода в метод onCreate вашей деятельности.

GetWindow (). SetFlags (0x04000000, 0x04000000); // FLAG_TRANSLUCENT_STATUS

У меня была такая же проблема, как вы описываете и показываете на скриншотах. Проблема возникла только на KitKat.

В моем случае это произошло в некоторых диалоговых окнах всплывающих окон, которые использовали пользовательский стиль. Далее следует стиль, который воспроизводит проблему при использовании диалога. Обратите внимание на первую строку, которая имеет атрибут parent = "android.Theme" , удалив этот атрибут, проблема была решена.

 <style name="transparent_low_dim" parent="android:Theme"> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsFloating">true</item> <item name="android:backgroundDimEnabled">true</item> <item name="android:backgroundDimAmount">0.3</item> <item name="android:windowAnimationStyle">@null</item> </style> 

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

 <style name="transparent_low_dim">