2010-11-15 11 views
16

¿Hay alguna manera de hacer DatePicker y TimePicker más pequeños (pero para ser visibles todas las partes) en Android? Intenté establecer layout_width = "130dp", pero luego DatePicker no está visible, solo dejó la esquina superior.Make DatePicker y TimePicker más pequeños

+0

puede intentarlo con esto: http://andmobidev.blogspot.com/2010/01/setting-width-of-view-using-percentage.html – apps

+0

Hola, no estoy seguro de que esto te ayude, pero también encontré que el TimePicker original es bastante torpe, así que hice el mío :) mira mi [pregunta original] (http://stackoverflow.com/questions/5921543/android-looking-for-different-timepicker-style) para más información. El TimePicker que hice es aproximadamente la mitad del tamaño que el original, por lo que definitivamente es más pequeño :). – Ready4Android

+0

pago mi solución (y con suerte lo acepto porque esta página fue el primer resultado en mi feed de google y me tomó horas arreglarlo) – HaydenKai

Respuesta

1

En lugar de usar "dp" para el ancho del diseño, use porcentajes en peso para hacerlo más pequeño. Para Android: layout_weight para ser efectivo, pon android: layout_width a 0 dip.

android:layout_height="wrap_content"

android:layout_width="0dip"

android:textSize="12sp"

+16

Parece que no funciona – Wei

+2

En realidad, cuando respondí, solía funcionar. Ahora que el marco evolucionó, no es así. –

19

Use propiedades siguen:

Ejemplo menor 80% original

android:scaleY="0.8" 
android:scaleX="0.8" 
+2

[Nota: requiere API nivel 11 (Android 3.0)] (http://developer.android.com/reference/android/view/View.html#setScaleX (float)). – Pang

+14

Todavía ocupa el mismo espacio (el marcador de fecha es más pequeño, pero tiene un gran margen y espacio inútil alrededor) ¿Cómo puedo resolver este problema? –

+0

tal vez tenga que personalizar su marcador de fecha. ej .: https://github.com/luminousman/DatePicker –

-2

Otra solución:

ponerlo en un LinearLayout y ajustar la altura de la LinearLayout manualmente

+3

Definitivamente no funciona (áreas de selector ocultas). –

0

Puede escala simple como esto:

android:scaleY="0.5" android:scaleX="0.5"

para obtener la media del tamaño

Y para conseguir un acolchado más pequeño, android:padding="-20dp"

Mirando desde el marco del selector puede superponerse a otros puntos de vista, pero en la aplicación, no lo hará.

El relleno va a funcionar perfectamente y los botones también.

+0

android: padding = "- 20dp" simplemente no funciona para TimePicker – comrade

1

Esto funcionó para mí para ajustar un selector de fecha y hora en un diálogo con un diseño personalizado en modo horizontal en una pantalla pequeña. Establezca el peso de un contenedor (LinarLayout) en 100 y luego llénelo con widgets que suman 100 en la propiedad layout_weight.

<LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:weightSum="100" 
     android:layout_gravity="center_horizontal"> 

      <DatePicker 
       android:id="@+id/dlgDateTimePickerDate" 
       android:layout_width="wrap_content" 
       android:layout_weight="50" 
       android:layout_height="wrap_content" /> 

      <TimePicker 
       android:id="@+id/dlgDateTimePickerTime" 
       android:layout_weight="50" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" /> 
    </LinearLayout> 
6

(En realidad, esto funciona y otras no) Después de mucho buscar esto funcionó:

<DatePicker 
    android:id="@+id/dp_datepicker" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:scaleX="0.7" 
    android:scaleY="0.7" 
    android:layout_marginLeft="-30dp" 
    android:layout_marginRight="-30dp" 
    android:datePickerMode="spinner" 
    /> 

<TimePicker 
    android:id="@+id/tp_timepicker" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:scaleX="0.7" 
    android:scaleY="0.7" 
    android:layout_marginLeft="-30dp" 
    android:layout_marginRight="-30dp" 
    android:timePickerMode="spinner" 
    /> 

El android:scaleX="0.7" se lo achica el selector visible (funciona para DatePicker y TimePicker) y el android:layout_marginLeft="-30dp" permitido para que el espacio se reduzca

Nota: Todos los intentos de utilizar android:padding="-30dp" no funcionaron y el uso de android:layout_margin="-30dp" (sin un lado especificado) tampoco funcionó. Espero que esto ayude a aquellos que estaban tan perdidos como yo

P.S. ¡Google arregla tu maldita API DatePicker!

Cuestiones relacionadas