Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
 Аватар для Abakus
4 / 3 / 1
Регистрация: 17.02.2018
Сообщений: 119

Как сменить внешность DatePicker через стиль.?

21.03.2019, 22:03. Показов 4576. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется приложение в котором присутствуют два виджета DatePicker вида Spinner (без календаря, именно виджет - не диалог).
XML
1
2
3
4
5
6
android:id="@+id/datePicker"
        style="@style/MyDatePickerStyle"
        android:datePickerMode="spinner"
        android:calendarViewShown="false"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
Приложение создавалось с min SDK = 15 (Ice Cream Sandwich).
Я пробовал создать стиль
MyDatePickerStyle в котором написано
XML
1
2
3
4
5
<style name="MyDatePickerStyle" parent="Base.Theme.AppCompat.Light">
        <item name="android:background">@color/colorDatepickerBgr</item>
        <item name="colorControlNormal">@color/colorDatepickerDash</item>
        <item name="android:textColorSecondary">@color/colorPrimaryDark</item>
    </style>
Общий background применился и всё. Цвет текста и разделительные чёрточки остались какие были по умолчанию.
Подскажите, как добиться через стиль (и можно ли) - чтобы DatePicker поменял внешний вид в большей степени ? Имеется ввиду цвет текста выбранной даты, цвет горизонтальных полосок, которые обрамляют выделенную дату, background выделенной даты отдельно от общего background-а и т. п.
.......
или parent-ом выбрать что другое?
(в моём случае Base.Theme.AppCompat.Light - прабабушка (так сказать) темы приложения, то есть стиль и тема приложения имеют общего предка)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.03.2019, 22:03
Ответы с готовыми решениями:

Как при обращени в адресной строке через id сменить стиль?
Всем привет! Помогите пожалуйста с небольшим скриптом. Сделать нужно следующее. У нас на сайте есть некий блок с id=&quot;vip&quot;....

Как сменить стиль?
Как сменить стиль, т.е поставить не metall, а скажем системный?

Как инициализировать поле через DatePicker
Как с помощью DatePicker'a инициализировать DateTime-поле модели? Видел примеры, где показывали прикрепление DatePicker'a к TextBox, но что...

4
111 / 89 / 29
Регистрация: 07.01.2017
Сообщений: 456
21.03.2019, 22:39
Abakus, текст разный бывает:
XML
1
android:textColorPrimary
, например. Для каждого цвета есть параметр свой, заменить только нужно.
0
 Аватар для Abakus
4 / 3 / 1
Регистрация: 17.02.2018
Сообщений: 119
22.03.2019, 00:48  [ТС]
вот я и интересуюсь - какой цвет отвечает, ну например, за цвет текста выбранной даты ?
который textColorPrimary, textColorSecondary, textColorHint, textColorTertiary или какой ещё ?
какому цвету присвоить значение в стиле ?
их же там 100500
я по всякому пробовал, например
XML
1
2
3
4
5
<style name="MyDatePickerStyle" parent="Base.Theme.AppCompat.Light">
        <item name="android:background">@color/colorDatepicker</item>
        <item name="android:textColorTertiary">#d50000</item>
        <item name="android:textColorHint">@color/colorPrimaryDark</item>
    </style>
не помогает... только android:background применился и всё.
значит - или не попадаю на нужное значение или что-то тут не так... вот и спрашиваю совета...
0
111 / 89 / 29
Регистрация: 07.01.2017
Сообщений: 456
22.03.2019, 10:36
Abakus, http://www.zoftino.com/android-datepicker-example
0
 Аватар для Abakus
4 / 3 / 1
Регистрация: 17.02.2018
Сообщений: 119
22.03.2019, 19:34  [ТС]
jaman_smk, и эти примеры тоже я пробовал. Хотя, конечно, мне нужен режим спиннер (чтоб без календаря) и минимальное API у меня 15 - не работают примеры.
Студия ругается слегка , мол можно быть наследником от parent="@android:style/Widget.Material.DatePicker" только если 21 API и выше , а у меня минимум 15 (по крайней мере я так её понял)
Кликните здесь для просмотра всего текста
@android:style/Widget.Material.DatePicker requires API level 21 (current min is 15) less... (Ctrl+F1)
This check scans through all the Android API calls in the application and warns about any calls that are not available on all versions targeted by this application (according to its minimum SDK attribute in the manifest). If you really want to use this API and don't need to support older devices just set the minSdkVersion in your build.gradle or AndroidManifest.xml files. If your code is deliberately accessing newer APIs, and you have ensured (e.g. with conditional execution) that this code will only ever be called on a supported platform, then you can annotate your class or method with the @TargetApi annotation specifying the local minimum SDK to apply, such as @TargetApi(11), such that this check considers 11 rather than your manifest file's minimum SDK as the required API level. If you are deliberately setting android: attributes in style definitions, make sure you place this in a values-vNN folder in order to avoid running into runtime conflicts on certain devices where manufacturers have added custom attributes whose ids conflict with the new ones on later platforms. Similarly, you can use tools:targetApi="11" in an XML file to indicate that the element will only be inflated in an adequate context.

, но проверял я это дело на шестом андроиде (API 23 ).
Нет фарта.

Добавлено через 1 час 58 минут
Вот так вроде-бы получилось, и не только цвета (во всяком случае на шестом андроиде, и студия не ругается особо...)

XML
1
2
3
4
5
6
7
8
9
10
<style name="MyDatePickerStyle" parent="Base.Theme.AppCompat.Light">
        <item name="android:background">@color/colorDatepicker</item>  <!-- DatePicker color background -->
        <item name="colorControlNormal">@color/colorDatepickerSeparateStrip</item>  <!-- DatePicker color separate strip -->
        <item name="android:editTextStyle">@style/editTextStyle</item>
    </style>
    <style name="editTextStyle" parent="android:style/Widget.EditText">
        <item name="android:textColor">@color/colorDatepickerText</item> <!-- DatePicker color text -->
        <item name="android:textStyle">bold|italic</item>  <!-- DatePicker font style text -->
        <item name="android:textSize">@dimen/_18sdp</item>  <!-- DatePicker font size text -->
    </style>
с последующим прописыванием в разметке соответствующего layout-a вот такой строки

XML
1
android:theme="@style/MyDatePickerStyle"
Но опять же - текст и разделители поменялись. А, скажем, backGround на выбранной дате (чтоб не такой как общий) можно сделать ? Как, если можно ?

Добавлено через 1 час 55 минут
И на четвертом андроиде работает частично. разделительные полоски не меняются.
В общем, чем старше андроид - тем менее применительно выходит.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.03.2019, 19:34
Помогаю со студенческими работами здесь

Сменить стиль в input
Приветствую! Не получается вроде бы элементарная вещь, новичок. Помогите плиз! Есть html код в витрине товаров &lt;form&gt; ...

Не получается сменить стиль вывода кнопки
Доброе время суток. Появилось желание добавить кнопку &quot;спасибо&quot; (от WebMoney) и при этом сохранить стиль плавающих кнопок соц.закладок....

Сменить стиль элемента на javascript в процессе выполнения функции
Я вот сделал авторизацию на ajax с обработкой json ответа, но не получается сделать изменения стиля элемента в зависимости от ответа. ...

Сменить стиль родителя при нажатии на дочерний эллемент
Доброго времени суток. Есть &lt;fieldset&gt; &lt;legend&gt;Name&lt;/legend&gt; &lt;input type=&quot;text&quot; name=&quot;login&quot; placeholder=&quot;Your...

Как изменить стиль css через js?
как в код js: $(&quot;#infm&quot;).removeClass().css({'top' : '80px'}); добавить медия-запрос css :@media screen and (max-width:550px) { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru