Ответ 1
Используйте следующие свойства:
Пример меньше 80% оригинала
android:scaleY="0.8"
android:scaleX="0.8"
Есть ли способ сделать меньший DatePicker и TimePicker (но быть видимым во всех частях) в Android? Я попытался установить layout_width = "130dp", но тогда DatePicker не отображается, только левый верхний угол.
Используйте следующие свойства:
Пример меньше 80% оригинала
android:scaleY="0.8"
android:scaleX="0.8"
(Это действительно работает, а другие нет) После долгих поисков это сработало:
<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!
Вместо того, чтобы использовать "dp" для ширины макета, используйте проценты по весу, чтобы уменьшить его. Для android: layout_weight, чтобы быть эффективным, установите android: layout_width в 0 dip.
android:layout_height="wrap_content"
android:layout_weight=".33"
android:layout_width="0dip"
android:textSize="12sp"
Это сработало для меня, чтобы установить дату и время в диалоговом режиме с настраиваемым макетом в альбомном режиме на маленьком экране. Задайте вес контейнера (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>
Вы можете просто масштабироваться следующим образом:
android:scaleY="0.5"
android:scaleX="0.5"
чтобы получить половину размера.
И чтобы получить меньшее дополнение, android:padding="-20dp"
Глядя из рамки, сборщик может перекрывать другие виды, но в приложении он не будет.
Отступы будут работать отлично, а кнопки тоже.
Другое решение:
Поместите его в LinearLayout
и установите высоту LinearLayout
вручную