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.
En Nexus 5 API 23 (Portrait): TimePicker en modo Portrait (API 23)
En Nexus 5 API 23 (Paisaje): TimePicker en modo Paisaje (API 23)
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 .