Стили в Android. Как организовать темы в проекты

  Рет қаралды 18,883

Android Broadcast. Все об Андроид разработке

Android Broadcast. Все об Андроид разработке

Күн бұрын

Пікірлер: 66
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
🔗 Telegram канал "Android Broadcast" ttttt.me/android_broadcast 🔗 Блог Кирилла в Telegram t.me/rozov_blog 🔗 Чат сообщества в Telegram ttttt.me/android_broadcast_talks 🔗 Telegram канал "Kotlin Broadcast" ttttt.me/kotlin_broadcast
@Иванов.Михаил
@Иванов.Михаил 2 жыл бұрын
Как я понял, на видео в иерархии тем есть баг: Для версии SDK >= 26 не будут применены атрибуты стиля Base.V21.Night.Theme.AndroidBroadcast (если применить темную тему). Потому, что стиль Base.V26.Theme.AndroidBroadcast (14:41) наследуется от Base.V21.Theme.AndroidBroadcast, который есть только в not_night и наследуется от Theme.MaterialComponents (11:43), а в night квалификаторе он (V21) не переопределен. Поэтому V26 сразу идет в дневной themes.xml, а потом сразу в Theme.MaterialComponents В качестве исправления можно, например: Добавить Base.V21.Theme.AndroidBroadcast в папку values-night и наследовать от Base.V21.Night.Theme.AndroidBroadcast (12:52). А свойства стиля Base.V21.Theme.AndroidBroadcast перенести в стиль Base.V21.Day.Theme.AndroidBroadcast, который перед этим создать в папке values без квалификаторов Либо: Создать папку values-night-v26, в ней создать тему Base.V26.Night.Theme.AndroidBroadcast parent="Base.V21.Night.Theme.AndroidBroadcast" и тему Base.Theme.AndroidBroadcast parent="Base.V26.Night.Theme.AndroidBroadcast" (это кстати совсем немного похоже на то, как делает Google - в библиотеке material components в папке values-night-v8\values-night-v8.xml) Также есть второй баг, что атрибут buttonStyle=Widget.AndroidBroadcast.Button не применится для темной темы, т.к. указан в Base.V21.Theme.AndroidBroadcast, который не используется в темной теме
@ИльшатБиккузин
@ИльшатБиккузин 2 жыл бұрын
Как всегда большой респект за твою работу !!! Круто было бы увидеть видео как готовить recyclerview c адаптерами (возможно со сторонней библиотекой типа FastAdapter или Delegate Adapter)
@h_o_l_m_i
@h_o_l_m_i 2 жыл бұрын
вот же видос на канале есть: kzbin.info/www/bejne/pWnVq62HhbSiaLc
@Alexanuu
@Alexanuu 2 жыл бұрын
Шикарное видео, мне очень нравится как вы делаете гайды. Сейчас работаю с Worker и нигде не нашел толкового объяснения, что да как. Было бы круто увидеть гайд в вашем исполнении по worker, workerFactory, в связке с даггером. Если столкнулись с этим же, буду рад привлечением внимания лайком
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Спасибо. Мне самому интересно разобраться в этой теме, правда я с Worker Manager не работал пока в проде ( Но думаю сделаю разбор, правда по срокам не обещаю
@Alexanuu
@Alexanuu 2 жыл бұрын
@@AndroidBroadcast Спасибо вам большое!
@danzolax6885
@danzolax6885 2 жыл бұрын
Наконец-то видео по стилям)
@Hromlist
@Hromlist 2 жыл бұрын
Спасибо за видео. Styles and Themes Android.
@ИгорьВоронов-ъ4м
@ИгорьВоронов-ъ4м Жыл бұрын
Видео просто огонь! спасибо большое!!!
@СергейПанов-з3ц
@СергейПанов-з3ц 2 жыл бұрын
Очень полезное видео. Чтобы это все понять пришлось прочитать кучу статей на английском языке, а тут все в одном месте и за 20 минут.
@FreeCoder
@FreeCoder 2 жыл бұрын
Понравилось видео, все просто, доходчиво и информативно. Спасибо
@maksonic_official
@maksonic_official 2 жыл бұрын
Видео супер! Я думал, ну чего я тут нового узнаю, решил так чисто ради просмотра включить, аха для меня стало открытием что можно сразу для всех кнопок определить стиль и установить в теме. А чо так можно было??? xD Я делал так, определял стиль и для каждой кнопки писал style="@style/MyBnStyle"... В общем и целом годно! Только почему этот видос не вышел год назад, а то и два, я не понимаю)))
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Год назад только видео стали делаться на канале и тогда не было этого запроса
@mikhailgureev218
@mikhailgureev218 2 жыл бұрын
супер-пушка спасибо Кирилл
@ВладиславБакало
@ВладиславБакало 2 жыл бұрын
Спасибо за видео!
@АмелияФедосеева-ю6ч
@АмелияФедосеева-ю6ч 2 жыл бұрын
Спасибо автору,классно видео
@AntonParonko
@AntonParonko 2 жыл бұрын
Отличное видео! Повторил все и быстро вспомнил :)
@mreffect_dev
@mreffect_dev 2 жыл бұрын
Спасибо большое
@z_fort
@z_fort Жыл бұрын
А как ссылаться на эти стили из манифеста в приложении? Он выдает ошибку. Я еще новичок. Если подскажите, то буду очень признателен
@AndroidBroadcast
@AndroidBroadcast Жыл бұрын
Ссылаться на атрибут из манифеста нельзя, а вот сослаться на ресурс через R класс или считать значение из манифеста можно
@avramones8960
@avramones8960 2 жыл бұрын
Спасибо, Кирилл)
@brffclips1
@brffclips1 2 жыл бұрын
Не понятно немного ThemeOverlay. В чем проблема сделать просто Theme, какое преимущество у ThemeOverlay.
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Все это разделение условно. Вы хоть TextAppereance туда можете запихнуть. Theme - это базовый стиль, который используется для всех Window и должен содержать значения всех параметров. ThemeOverlay - переопределение нескольких атрибутов, которое накладывается в пределах некоторой части Layout
@user-fc9gt6dl2i
@user-fc9gt6dl2i 2 жыл бұрын
Надо создавать по варианта стилей виджетов, чтобы цвета менялись в зависимости от ночной или дневной темы?
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Конечно, либо нужно ссылаться только на ресурсы, которые это поддерживают либо не зависят от day-night темы
@michael_ya_
@michael_ya_ 2 жыл бұрын
На сколько правильно наследовать стиль Header1 и указывать маленький размер текста? Ведь есть стандартные размеры, уже указанные в самих Body1, Body2, HeaderN. Или не стоит обращать внимание на эти стандартные значения, и просто экспуатировать название стиля в соответствии с дизайном приложения? Например, дизайнер сказал что основной заголовок будет размером 25sp, а подзаголовок размером 30sp, и я соответственно должен создать стиль MyTheme.Header1 с размером 25sp и стиль MyTheme.Header2 с размером 30sp - что совершенно противоречит дефолтным размерам, где Header1 по размеру больше Header2. На сколько это будет правильным?
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Ну это можно быть приемлемо для ввшего приложения. Гейминг лишь позволяет вам определить набор стилей а рамках дизайна вашего приложения
@JamesBond-mq7pd
@JamesBond-mq7pd 2 жыл бұрын
А как в Compose?
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Там лучше свою тему делать, но можно использовать через адаптер material-components.github.io/material-components-android-compose-theme-adapter/
@АлексейМорозов-ь1п
@АлексейМорозов-ь1п 2 жыл бұрын
Кирилл, спасибо за видео! Не подскажешь по атрибутам для Button, можно ли настроить размер текста таким, чтобы он автоматически адаптировался под установленный размер кнопки?
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Button - это TextView и для него сработает developer.android.com/guide/topics/ui/look-and-feel/autosizing-textview
@garmax1
@garmax1 2 жыл бұрын
Отличное видео! Версию стилей под апи 26 надо еще и под ночную тему ведь сделать? Чтобы новый атрибут там со своим цветом был.
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Ночная тема поддерживается и на более ранних версиях ЛС. Точнее квалификатор night
@garmax1
@garmax1 2 жыл бұрын
@@AndroidBroadcast Я написал применительно к видео )) Если отделили тему для апи 26, то сразу и ночную надо тоже самое сделать.
@SV-je2rf
@SV-je2rf 2 жыл бұрын
Есть красивая тема для телефонов Nokia, хочу чтоб оттуда обою и иконки сняли и перетащили для темы Android. Кто может такое сделать ?
@andreiprokofjev
@andreiprokofjev 2 жыл бұрын
Compose может эти темы использовать?
@JamesBond-mq7pd
@JamesBond-mq7pd 2 жыл бұрын
Может, но с костылями. Используй MdcTheme
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Да, есть специальная библиотека адаптер material-components.github.io/material-components-android-compose-theme-adapter/
@Libra7by
@Libra7by 2 жыл бұрын
Можно выложить текст субтитров в открытый доступ. Очень быстро говорите много информации, хотелось бы почитать как статью.
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Разве скачать нельзя их так просто? Да и не думаю что рассшифровка технического русского языка будет качественной
@Libra7by
@Libra7by 2 жыл бұрын
@@AndroidBroadcast Я имел ввиду те субтитры, которые вы читаете на видео. Это же почти статья или набор качественных заметок.
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Ааа, сценарий. Ну он не для всех видео есть. Я думал их начать выкладывать для патронов
@romanpavliuk2301
@romanpavliuk2301 2 жыл бұрын
Спасибо за видео по базе стилей. А будет ли где-то видео для более продвинутого использования стилей?
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Например, что там рассказать?
@Libra7by
@Libra7by 2 жыл бұрын
@@AndroidBroadcast Как отслеживать использование цветов в стилях. Например, задашь цвета, как учат в материал, а потом неожиданно вылазит белый текст на светлом фоне в элементе спиннера. У новичков, постоянно выходят такие накладки, которые закрываются кастылями - персональными атрибутами.
@Juliet-z8z
@Juliet-z8z Жыл бұрын
@@Libra7by не понимаю, откуда взяться белому тексту при установке определенного стиля
@Libra7by
@Libra7by Жыл бұрын
@@Juliet-z8z Увы, многие дизайнеры не следуют Material, а рисуют "как художник видит". Попытки запихнуть это в стили, вылазит такими косяками. Что считать primary, что secondary и т.п. В итоге, смотрю в проектах, программисты просто хардкодят вьюхи без всяких стилей.
@AndroidBroadcast
@AndroidBroadcast Жыл бұрын
Всегда отделял художников от дизайнеров и тем более UI/UX экспертов. Иногда собственный дизайн - это фишка, но зачастую усложнение в том чтобы пользователю привыкнуть у приложению. Продукты хотят один дизайн сквозь все платформы, но оправдано ли это всегда?
@MxMayers
@MxMayers 2 жыл бұрын
Мда... А я ведь просто зашел посмотреть "как настроить тему" 😂. Что я понял из этого видео: что бы построить "школу" сначала нужно построить кирпичный завод, бетонный завод, железобетонный завод, потом построить базовую школу на ее основе школу для 7ми летних + для 10ти летних + для 10ти летних во вторую смену + в ночную смену и потом только школу 🤣 PS да здравствует Compose
@h_o_l_m_i
@h_o_l_m_i 2 жыл бұрын
интересно было бы видео о том какие атрибуты появлялись в новых версиях андроида и что дает их переопределение
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Таким разбором точно заниматься не стоит и это можно посмотреть в документации R.attr класса
@hombre2355
@hombre2355 2 жыл бұрын
У меня как-то спросили что я знаю про Theme, а я растерялся и даже не знал что именно нужно рассказать. Впрочем, сейчас тоже не могу сформулировать какой-то полноценный ответ. Пару слов, не более. 😐
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Видео помогло ?
@krutoyinfo
@krutoyinfo Жыл бұрын
Соответственно, первая часть понятна, соответственно вторая часть нихуя не понятно. Соответственно
@alexander_228
@alexander_228 2 жыл бұрын
Бл, очень сложно, если честно
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Что именно тяжело?
@shivai211
@shivai211 2 жыл бұрын
сложно для начинающих
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Так весь канал и не позиционируется для начинающих
@Camilablv
@Camilablv 2 жыл бұрын
Прошу прощения, я наверное пропустила, где ты высказывались по поводу своей позиции на счет российско украинской войны, можешь, пожалуйста, еще раз сказать?
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Ничего не пропустили. Я это не обсуждал и не собираюсь. Это канал про Android разработку
@z_fort
@z_fort Жыл бұрын
@@AndroidBroadcast + уважение
@aciDevil69
@aciDevil69 2 жыл бұрын
привет! подскажи если атрибут поддерживает версию 23, а у нас 21, то при использовании единого стиля наш атрибут отработает при 23, но при меньшем не сработает? логика вроде явная, но столкнулся с полным не отрабатываем атрибута...
@aciDevil69
@aciDevil69 2 жыл бұрын
может кто-то глянет этот атрибут hyphenationFrequency, у меня на 25 не работает, а больше и негде проверить... нужен перенос по слогам.
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Атрибут ещё это лишь значение. Логика его считыванич может быть завязано на значение другого атрибута. Если атрибут из более новой версии ОС, то вроде как он будет проигнорирован просто
Merged Android Manifest [RU]
11:03
Android Broadcast. Все об Андроид разработке
Рет қаралды 11 М.
Модули в Android Clean Architecture на практике
20:57
Тимофей Коваленко
Рет қаралды 26 М.
СИНИЙ ИНЕЙ УЖЕ ВЫШЕЛ!❄️
01:01
DO$HIK
Рет қаралды 3,3 МЛН
Sigma Kid Mistake #funny #sigma
00:17
CRAZY GREAPA
Рет қаралды 30 МЛН
Что-что Мурсдей говорит? 💭 #симбочка #симба #мурсдей
00:19
[Android] Стили и темы
28:00
Rolling Scopes School
Рет қаралды 3,8 М.
Google заставит разработчиков поддерживать планшеты в Android 16
15:59
Android Broadcast. Все об Андроид разработке
Рет қаралды 3,3 М.
Jetpack Compose - будущее Android UI и убийца Fragment
22:57
Android Broadcast. Все об Андроид разработке
Рет қаралды 38 М.
Миграция с LiveData на Coroutines Flow
25:02
Android Broadcast. Все об Андроид разработке
Рет қаралды 29 М.
Возможности OkHttp о которых вы не знали
22:54
Android Broadcast. Все об Андроид разработке
Рет қаралды 18 М.
MVP в Android на практике
11:35
Тимофей Коваленко
Рет қаралды 7 М.
ПЕРЕСТАНЬТЕ использовать Copilot.  Вред ИИ для разработчиков
7:54
Android Broadcast. Все об Андроид разработке
Рет қаралды 5 М.
как тебе будут продавать в 2025
16:22
Тихон Смирнов
Рет қаралды 462 М.
СИНИЙ ИНЕЙ УЖЕ ВЫШЕЛ!❄️
01:01
DO$HIK
Рет қаралды 3,3 МЛН