studio programacion obtener móviles mostrar manejo hora fechas fecha desarrollo curso aplicaciones actual android api mobile landscape timepicker

programacion - obtener fecha actual android studio



Android TimePicker no se muestra bien en modo paisaje (3)

Actualmente estoy compilando una aplicación que apunta a API 23, con un API 16 como mínimo. Me enfrenta un problema en el que se muestra un TimePicker dentro de un AlertDialog. La pantalla se ve bien en el modo vertical y en el modo horizontal cuando se inicia la aplicación en la API Nexus 5 <= 22. Sin embargo, al iniciar la aplicación en un Nexus 5 API 23, el modo horizontal no muestra correctamente el widget TimePicker, solo muestra sus colores de fondo.


Tengo este problema. Esta ayuda para mí:

timePicker.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));


Debes eliminar el título del set del diálogo del selector de tiempo después de que verás el diálogo del selector de tiempo en Nexus 5. Este problema se publica en el foro de google, mira el enlace a continuación:

https://code.google.com/p/android/issues/detail?id=201766

TimePickerDialog mTimePicker; String[] time = txtTimeWriteOut.getText().toString().trim().split(":"); int hour = Integer.parseInt(time[0]); int minute = Integer.parseInt(time[1]); mTimePicker = new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) { txtTimeWriteOut.setText(TimeUtils.getDoubleDigits(selectedHour) + ":" + TimeUtils.getDoubleDigits(selectedMinute)); passTimeOut = currentDate + TimeUtils.getDoubleDigits(selectedHour) + TimeUtils.getDoubleDigits(selectedMinute) + "00"; } }, hour, minute, true); // mTimePicker.setTitle("Select Time"); mTimePicker.show();


1. Si NO te importa perder el título en tu diálogo:

Si está siguiendo estrictamente la documentación oficial en Pickers , esto es lo que debe hacer en su método onCreateDialog() :

En lugar de crear una nueva instancia de TimePickerDialog y devolverlo de inmediato, llame a setTitle(null) antes de devolverlo, de esta forma:

@Override public Dialog onCreateDialog(Bundle savedInstanceState) { /* ... */ Dialog dialogFragment = new TimePickerDialog(/* ... */); dialogFragment.setTitle(null); return dialogFragment; }

Me gustaría señalar que el problema no estaba ocurriendo en Android 5.0.2 (Lollipop). El diálogo estaba sin el título por defecto.

El problema ocurrió en el dispositivo Android 6.0. Mostró el mismo diálogo con un título.

2. Si tener el título en el diálogo es imprescindible para usted:

Debería leer el código fuente de TimePickerDialog . No hay otro camino. No fui completo al modo de ira en el código fuente, ya que tuve el lujo de establecerlo en null .

Creo que puedes encontrar un método privado setupTitle() del paquete privado clase AlertController muy interesante. AlertControler se usa en la lógica de negocios de AlertDialog .