2010-11-15 12 views
16

Czy istnieje sposób, aby zmniejszyć DatePicker i TimePicker (ale być widoczne wszystkie części) w systemie Android? Próbowałem ustawić layout_width = "130dp", ale wtedy DatePicker nie jest widoczny, tylko lewy górny róg.Make DatePicker i TimePicker mniejsze

+0

możesz spróbować z tym: http://andmobidev.blogspot.com/2010/01/setting-width-of-view-using-percentage.html – apps

+0

Hej tam - nie jestem pewien, czy to ci pomoże, ale także uznałem oryginalny TimePicker za dość niezgrabny, dlatego zrobiłem swój własny :) sprawdź moje [oryginalne pytanie] (http://stackoverflow.com/questions/5921543/android-look-for-different-timepicker-style), aby uzyskać więcej informacji. Wyprodukowany przeze mnie TimePicker jest o połowę mniejszy od oryginału - więc zdecydowanie jest mniejszy :). – Ready4Android

+0

Zamówienie mojego rozwiązania (i miejmy nadzieję, zaakceptuj to, ponieważ ta strona była pierwszym wynikiem w moim kanale google i zajęło mi godziny, aby to naprawić) – HaydenKai

Odpowiedz

1

Zamiast używać "dp" dla szerokości układu, użyj procentów wagowych, aby go zmniejszyć. Dla Androida: layout_weight, aby być skutecznym, umieść androida: layout_width na 0 dip.

android:layout_height="wrap_content"

android:layout_width="0dip"

android:textSize="12sp"

+16

wydaje się, że to nie działa – Wei

+2

Właściwie, kiedy dałem odpowiedź, to działało. Teraz, gdy szkielet ewoluował, tak nie jest. –

19

Używanie właściwości następujące:

Przykład mniejsza 80% oryginalnego

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

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

+14

Wciąż zajmuje to samo miejsce (datepicker jest mniejszy, ale ma duży margines i niepotrzebną przestrzeń wokół) Jak mogę rozwiązać ten problem? –

+0

może musisz dostosować swój datepicker. ex: https://github.com/luminousman/DatePicker –

-2

Innym rozwiązaniem:

Umieścić go w LinearLayout i ustawić wysokość LinearLayout ręcznie

+3

Zdecydowanie nie działa (ukryj obszary). –

0

Można prosta skala tak:

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

uzyskać połowę wielkości.

i uzyskać mniejszą wyściółkę, android:padding="-20dp"

Patrząc z ram selektor może nakładać się na inne poglądy, ale w aplikacji, to nie będzie.

Wyściółka będzie działała idealnie, a przyciski również.

+0

android: padding = "- 20dp" po prostu nie działa dla TimePicker – comrade

1

To działało dla mnie, aby dopasować selektor daty i czasu do dialogu z niestandardowym układem w trybie poziomym na małym ekranie. Ustaw wagę kontenera (LinarLayout) na 100, a następnie wypełnij go widżetami dodającymi do 100 we właściwości 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

(To faktycznie działa, a inni nie) Po wielu poszukiwaniach to działało:

<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" 
    /> 

android:scaleX="0.7" jest co shrinked widoczną kompletacji (to działa na DatePicker i TimePicker) i android:layout_marginLeft="-30dp" dozwolony aby zmniejszyć przestrzeń.

Uwaga: Uwaga: Wszystkie próby użycia android:padding="-30dp" nie zadziałały, a użycie android:layout_margin="-30dp" (bez określonej strony) również nie działało. Mam nadzieję, że pomaga to tym, którzy byli tak samo zagubieni jak ja

P.S. Google naprawił twój szalony interfejs DatePicker API!

Powiązane problemy