2010-11-15 2 views
16

Есть ли способ сделать меньше DatePicker и TimePicker (но чтобы быть видимыми во всех частях) на Android? Я попытался установить layout_width = "130dp", но затем DatePicker не отображается, только левый верхний угол.Сделать DatePicker и TimePicker меньше

+0

вы можете попробовать: http://andmobidev.blogspot.com/2010/01/setting-width-of-view-using-percentage.html – apps

+0

Эй, я не уверен, что это вам поможет, но я также обнаружил, что оригинальный TimePicker был довольно неуклюжим, поэтому я сделал свой собственный :) проверьте мой [оригинальный вопрос] (http://stackoverflow.com/questions/5921543/android-look-for-different-timepicker-style) для получения дополнительной информации. TimePicker, который я сделал, примерно в два раза меньше первоначального - так что он определенно меньше :). – Ready4Android

+0

проверить мое решение (и, надеюсь, принять его, потому что эта страница была первым результатом в моей фиде Google, и мне потребовались часы, чтобы исправить ее) – HaydenKai

ответ

1

Вместо того, чтобы использовать «dp» для ширины макета, используйте проценты по весу, чтобы уменьшить его. Для android: layout_weight, чтобы быть эффективным, установите android: layout_width to 0 dip.

android:layout_height="wrap_content"

android:layout_width="0dip"

android:textSize="12sp"

+16

кажется, что он не работает – Wei

+2

Фактически, когда я дал свой ответ, он работал. Теперь, когда структура эволюционировала, это не так. –

19

Используйте свойства следуют:

Пример меньше 80% первоначально

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

[Примечание: требуется уровень API 11 (Android 3.0)] (http://developer.android.com/reference/android/view/View.html#setScaleX (float)). – Pang

+14

Он по-прежнему занимает одно и то же пространство (дампикер меньше, но имеет большой запас и бесполезное пространство вокруг) Как я могу решить эту проблему? –

+0

, может быть, вам нужно настроить свой датпикер. ex: https://github.com/luminousman/DatePicker –

-2

Другое решение:

Положите его в LinearLayout и установить высоту LinearLayout вручную

+3

Определенно не работает (скрытые области захвата). –

0

Вы можете просто масштаб так:

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

, чтобы получить половину размера.

А чтобы получить меньшие отступы, android:padding="-20dp"

Глядя из рамок сборщика может перекрывать другие мнения, но в приложении, это не будет.

Прокладка будет работать отлично, а также кнопки.

+0

android: padding = "- 20dp" просто не работает для TimePicker – comrade

1

Это сработало для меня, чтобы подобрать дату и время в диалоге с пользовательским макетом в ландшафтном режиме на маленьком экране. Задайте вес контейнера (LinarLayout) до 100, а затем заполните его виджетами, добавляя до 100 в свойстве 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

(Это на самом деле работает, а другие нет) После долгих поисков это работает:

<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" является то, что усаживается видимую подборщика (он работает для DatePicker и TimePicker) и android:layout_marginLeft="-30dp" разрешено для сокращения пространства.

Примечание: Все попытки использования android:padding="-30dp" не помогли и использовали android:layout_margin="-30dp" (без указания указанной стороны) также не работал. Надеюсь, это поможет тем, кто был потерян как мне

P.S. Google получает ваш фиктивный API DatePicker исправлен!

Смежные вопросы