2014-04-14 13 views
5

Próbuję skalowanie poziome LinearLayout że zawiera DatePicker i TimePicker dodającskalowania widoku zmniejsza rozmiar treści, ale zwiększa puste marginesy

android:scaleX="0.6" 
android:scaleY="0.6" 

Problem polega na tym, że ta skaluje treści, ale zwiększa margines u tym samym czasie, więc nie mogę prawidłowo korzystać z przestrzeni. Na rysunku zaznaczono biały obszar to miejsce zdobyte przez skalowanie, ale nie mogę korzystać z tego miejsca (w rzeczywistości, zegar z prawej strony jest przycięty)

Screenshot

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:scaleX="0.6" 
    android:scaleY="0.6"> 

    <DatePicker 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/datePicker" 
     android:layout_gravity="center_horizontal" 
     android:calendarViewShown="false" 
     android:spinnersShown="false" 
     android:layoutMode="opticalBounds" 
     android:measureAllChildren="true" /> 

    <TimePicker 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/timePicker" 
     android:layout_gravity="center_horizontal" 
     android:layout_marginBottom="5dp" /> 
</LinearLayout> 

każde rozwiązanie do skalowania widoku bez tego pustego miejsca problemu?

+0

Czy zdjęcie zostało zrobione z podglądem IDE? –

+0

@asafgitai yes is from IDE preview – AndreaF

+2

W takim przypadku problem może dotyczyć tylko podglądu pre Holo. Czy ten problem występuje na prawdziwych urządzeniach? Jeśli tak, to dzieje się również z osobami Holo? http://i.stack.imgur.com/TGYQ5.png –

Odpowiedz

2

Sugerowałbym, aby nie używać xscale & yscale. Zamiast tego można ustawić ciężar dla selektora daty.

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_gravity="center_horizontal"> 

    <DatePicker 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="50" 
     android:id="@+id/datePicker" 
     android:layout_gravity="center_horizontal" 
     android:calendarViewShown="false" 
     android:spinnersShown="false" 
     android:layoutMode="opticalBounds" 
     android:measureAllChildren="true" /> 

    <TimePicker 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="50" 
     android:id="@+id/timePicker" 
     android:layout_gravity="center_horizontal" 
     android:layout_marginBottom="5dp" /> 
</LinearLayout> 

można dodać obicie po bokach lub zmodyfikować ciężary jak chcesz.

+0

To nie działa. Widoki DatePicker i TimePicker będą się nakładać lub nie będą w pełni pokazywane, jeśli nie mieszczą się na ekranie urządzenia. – starkej2

+0

To jest niesamowite! Dziękuję Ci! – Alexander

1

Scalling nie zmieni rozmiaru kontrolki, oznacza to, że selektor danych zajmie to samo miejsce w układzie, niezależnie od tego, czy jest przesunięty w górę czy w dół. tylko ich zmiany wyglądają

Powiązane problemy