requisitos - El diálogo sobre Android KitKat parece estar cortado
que es android kitkat (6)
Debe extender el Diálogo y en el llamado onCreate el siguiente método:
@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);
}
Usé el tema de diálogo para una actividad y funciona bien en Android <= 4.3, pero no en el último KitKat 4.4. Aquí hay una captura de pantalla del problema:
Falta la parte superior del diseño. Se puede ver que los límites parecen estar cortados.
Estoy usando un emulador de Android para probar la aplicación, por lo que no sé si el problema se debe a la máquina virtual o por algún otro motivo.
Finalmente, traté de hacer algo con el nuevo modo FullScreen Immersive disponible en Android 4.4. Pantalla completa de Android
Simplemente coloque esto en el currículum vitae de la actividad "diálogo" , y eso le permite utilizar los diálogos en una actividad de pantalla completa, sin el recorte superior :)
Edición: se agregó una verificación de compatibilidad para la versión de destino, setSystemUiVisibility se implementa en Api 11, pero parece necesitar ese "parche" solo para 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);
}
Puede resolver el problema que se va a cortar desde el siguiente código.
dialog.getWindow().setFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
Solo agregue esta línea de código en el método onCreate de su actividad.
getWindow (). setFlags (0x04000000, 0x04000000); // FLAG_TRANSLUCENT_STATUS
Tengo un problema similar, pero con el uso de un diálogo personalizado. Desafortunadamente, no pude publicar mi captura de pantalla aquí.
Probé con algunas opciones diferentes, y parece que ejecutar la actividad de los padres en modo de pantalla completa afecta esto. Si elimino el siguiente código, el diálogo parece funcionar bien.
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
Noté esto después de obtener la actualización 4.4 KitKat en un Google Nexus 7 (primera versión). Además, no parece hacer una diferencia si tengo el título del diálogo presente o no.
Tuve el mismo problema que describe y muestra en sus capturas de pantalla. El problema solo sucedió en KitKat.
En mi caso, sucedió en algunos cuadros de diálogo emergentes que utilizaban un estilo personalizado. El siguiente es un estilo que reproduce el problema cuando se aplica a un diálogo. Observe la primera línea, que tiene el atributo parent = "android.Theme" , eliminando el atributo que se resolvió el problema.
<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>
Para solucionarlo, eliminé el atributo principal para que la primera línea se viera como la siguiente:
<style name="transparent_low_dim">