буду каждый раз писать слова благодарности каждый раз, как я буду возвращаться к лекциям из этого курса для того, чтоб подглядеть, как это надо делать.
Решил подключить нижнюю навигацию к проекту Сергея "Объявления на котлин". Начал искать на просторах инета - все написано или снято скомканно, криво, не понятно. Пытался повторить - ничего не выходило. Ютуб случайно сегодня выдал видео кого бы вы думали? Правильно, Сергея... Я не знаю, Сергей, как у тебя получается, но благодаря тебе я сегодня за 10 мин после просмотра этого видео подключил нижнюю навигацию. Магия...
Уроки действительно очень познавательные! Спасибо большое! setOnNavigationItemSelectedListener -- deprecated, кажется что kotlin придется учить бесконечно...
Спасибо! И вопрос - какой метод лучше использовать для скрытия BottomNavigationView при использовании фрагментов? Т.е. 1 фрагмент - отображаем, 2 и 3 - скрываем, 4 - опять отображаем
Спасибо большое за хорошо структурированный ролик! Искал информацию по BottomNavView очень долго и никак не мог его понять, т к везде был очень сложный (на моем уровне программирования) код, а если зайти в BottomNavigationActivity шаблон, то можно встретить такого монстра как ViewModel и вообще тушить свет... У тебя все очень понятно и структурированно рассказано
Сергей, огромное спасибо за уроки! Вместе с тем, есть вопрос или пожелание: нельзя ли начать активнее использовать фрагменты, соответственно немного коснуться их жизненного цикла?
Спасибо за урок! Правда привязал фрагменты к кнопкам, но они почему то открываются только дабл кликом, не подскажите в чем дело и как исправить это? UPD разобрался! Используйте setOnItemSelectedListener вместо setOnNavigationItemReselectedListener, тем более что он больше не актуален
Привет, проверь на эмуляторе, появилось это меню или нет. После новой версии Android Studio BumbleBee многие об этом пишут, но на эмуляторе все работает, новая версия пришла со многими багами в редакторе, на устройствах все работает.
Сергей, во вкладке design BottomNavigationView не реагирует на изменение фона и т.п. при изменении layout_height на wrap_content превращается в полоску как будто пустой и иконки не отображаются но при запуске эмулятора все в порядке. Перезапуск и ребилд не помогают.
Все делаю как у вас, но на 1:22 когда ставлю layout_height wrap_content, BottomNavigationView сворачивается в горизонтальную полоску без содержимого и впоследствии когда добавляем иконки меню эта полоска так и остается полоской. Что у меня не так не пойму((
Спасибо. Благодаря вам, мое приложение стало более эргономичным. Есть вопрос касаемо дизайна. У меня при переключении между кнопками нет анимации. Как это можно решить?
@@homopet Спасибо, текст стал отображаться. Но цвет текста везде белый. Перепробовал разные настройки, но пока не понятно, как сделать чтобы цвет текста невыбранных элементов был таким же, как цвет самих невыбранных элементов?
@@domontowicz в общем у меня получилось. в ресурсах надо создать новую андроид ресурс директорию - color. в эту папку добавить файл (наш селектор). код такой
Спасибо! чтото с цветами запутался. вроде также делал только тулбар и навигатио меню разных цветов. точнее НавМеню просто белый стал и потом вообще не реагировал на смену цвета
Спасибо. Лучший. Есть вопрос, нужно чтоб при нажатии на кнопку в приложении скачивался вордовский документ, как это сделать? Готов оформить какую то подписку ) Очень помогают уроки, от других учителей все плывет, а тут все понятно! Класс. Привет из Краснодара))
Сергей, спасибо за ваши уроки! В текущей версии setOnNavigationItemReselectedListener уже @Deprecated. Помогите решить проблему: Не знаю почему, но Toast.makeText не работает, то есть подсказки не показываются. Первый щелчок показывает по item3, а дальше уже никакие нажатия не показывают подсказку.
Я ставлю у BottomNavigationView - android:layout_height="wrap_content", но у меня высоты как-будто вообще нет, просто линия по ширине растянутая получается, как решить
Блин у меня в 2023 , уже нет атрибута колор в селекторе, не дает выбрать никак. Но и без него в принципе нормально работает все. Но скорее всего от темы зависит
Лучшее практическое пособие к документации! setOnNavigationItemSelectedListener, который теперь Deprecated, заменил на setonItemSelectedListener. P.S. Пока разбирался с Deprecated, наткнулся на все ошибки указанные в комментариях, их иногда полезно читать, особенно ответы автора) Зато теперь знаю, чем селектет от реселектед отличается.
Добрый день. Работаю с png картинками вместо icon,при выборе атрибута меню не появляются кнопки. Сама панель bottomNavigation просто исчезает. С чем это может быть связано?
Здраствуйте Сергей а что использовать место setOnNavigationItemSelectedListener а то он перечеркнут а как я понял это значит что его скоро его нельзя использовать
Не могу разобраться, как сделать что бы всегда под иконкой текст был, а то он появляется только когда state_checked Разобрался в activity_main.xml добавил app:labelVisibilityMode="labeled" и пришлось цвет текста меню удалить и в самой теме его изменить и поставил NoActionBar так убралась верхняя ненужная хрень)
У меня смена цвета иконок не работает через selector. При подключении селектора к ittemIconTint иконки становятся розового цвета вне зависимости от того какие там выбраны цвета. Удалось установить свои цвета только создав и применив стиль к атрибуту theme. Не знаю насколько это правильно.
setOnNavigationItemSelectedListener -- deprecated изменил на setOnItemSelectedListener, но приложение в эмуляторе даже не запускается, has stopped и все! Никаких ошибок андроид студио не показывает, помогите пожалуйста куда смотреть?
Хорошо рассказываешь , приятно слушать ! 👌👍👏 Хотя немного запутываешь объясняя не последовательно, с ссылками на то и это, но это мелочи. Смотрю твои видосы и руки чешутся написать прогу под андроид. Останавливает только мысль про 100500 недописанных проектов под микроконтроллеры, страшно забыть про них увлекшись изучением нового 🤣. Все равно придётся писать под андроид , квартира переполнена разными контроллерами . Мониторить и управлять всем с телефона очень удобно .
@@NecoRuChannel В итоге я не удержался , установил андроид студию. Сколько пакетов она подтягивает, уже два часа идет закачка и установка . Студия скачалась за пару минут. Посыпались ошибки установки . Надеюсь мне повезёт и я смогу запустить в эмуляторе заветную фразу " Привет мир " в течении нескольких часов))). Веселье началось 🤣🤣🤣
@@OCEH6 Там дел было на десять минут. Что-то глюкануло , наверное андроид студия. Перезагрузил комп, снова выбрал нужные пакеты, все очень быстро скачалось и установилось. Настроил эмулятор и готово, заветная фраза на экране, еще пару минут настроек и приложение запустилось на реальном телефоне ))). Один нюанс все-же остался. Компиляция шла очень долго. Вышла подсказка, что антивирус мешает процессу компиляции и подсказка как это исправить. Заморачиватся не стал пока, оставил на следующий раз.
binding.bNav.setOnItemSelectedListener { when (it.itemId) { R.id. } true } R.id. не находит в bottom_menu.xml мои id кнопки в чем может быть проблема ? Если делать не через viewBinding (binding) то все работает.
Сергей, спасибо за уроки! Хотел бы попросить вас подсказать, сейчас binding.bMenu.setOnNavigationItemReselectedListener Deprecated. Но если я использую NavigationBarView.OnItemSelectedListener{} то ничего не происходит, насколько я понял, потому что не обращаюсь к меню bNav, но мне пока сложно понять из документации, как это сделать. Подскажите пожалуйста.
огромное спасибо, поглащаю информацию по 5+ часов в день) впереди еще мнооого часов) + ява + компос и тп. низкий поклон за труды. п.с. метод устарел, использовал другой. работает точно так-же bindMain.bNav.setOnItemSelectedListener { when (it.itemId) { R.id.item1 -> {Toast.makeText(this, "item1", Toast.LENGTH_SHORT).show()} R.id.item2 -> {Toast.makeText(this, "item2", Toast.LENGTH_SHORT).show()} R.id.item3 -> {Toast.makeText(this, "item3", Toast.LENGTH_SHORT).show()} R.id.item4 -> {Toast.makeText(this, "item4", Toast.LENGTH_SHORT).show()} }
Самые понятные и полезные уроки по Android только у вас. Большое спасибо вам!
я когда прохожу какую=то тему у себя на учебе, я первым делом ищу ее же у NECO. и многое становится понятнее. Спасибо
Я рад))
Ого. А где комментарии? =)) Друзья! Больше пишем. Комментарии полезны для продвижения канала. Огромное спасибо!
Спасибо!
Лучшие уроки по андроид! Сергей, спасибо!
Спасибо!
Хороший короткий урок. Все по делу и разъяснено полностью.
Большое спасибо! Все коротко, доходчиво и по делу. Также спасибо за фишки с назначением цветов.
Просто, легко и доступно! Спасибо за твой труд!
буду каждый раз писать слова благодарности каждый раз, как я буду возвращаться к лекциям из этого курса для того, чтоб подглядеть, как это надо делать.
Спасибо большое за урок. Как всегда всё четко и ясно!
Решил подключить нижнюю навигацию к проекту Сергея "Объявления на котлин".
Начал искать на просторах инета - все написано или снято скомканно, криво, не понятно. Пытался повторить - ничего не выходило.
Ютуб случайно сегодня выдал видео кого бы вы думали? Правильно, Сергея...
Я не знаю, Сергей, как у тебя получается, но благодаря тебе я сегодня за 10 мин после просмотра этого видео подключил нижнюю навигацию.
Магия...
😅Спасибо, приятно слышать!
Спасибо за очередной прекрасный урок.)
Уроки действительно очень познавательные! Спасибо большое!
setOnNavigationItemSelectedListener -- deprecated, кажется что kotlin придется учить бесконечно...
используйте setOnItemSelectedListener p.s. Про уроки - согласен! Спасибо автору!
Спасибо! И вопрос - какой метод лучше использовать для скрытия BottomNavigationView при использовании фрагментов? Т.е. 1 фрагмент - отображаем, 2 и 3 - скрываем, 4 - опять отображаем
Благодарю за урок
Отлично, спасибо за урок!
Вроде свежие уроки, а уже setOnNavigationItemSelectedListener вычеркнут. Спасибо!
Спасибо большое за хорошо структурированный ролик! Искал информацию по BottomNavView очень долго и никак не мог его понять, т к везде был очень сложный (на моем уровне программирования) код, а если зайти в BottomNavigationActivity шаблон, то можно встретить такого монстра как ViewModel и вообще тушить свет... У тебя все очень понятно и структурированно рассказано
подскажите, почему у меня BotomNavigation верстается одной тонкой полосой, и положения всего два, либо во весь экранчик, либо сворачивается в полосу
Ура, новый урок!
Очень круто спасибо
Спасибо!
Спасибо большое
как всегда отличный урок
Спасибо!
@@NecoRuChannel о чём будет следующий урок? и когда будет новая тема платных уроков? какой-нибудь проект серьёзный
@@ПростоУлыбка-ш2о остаеться третье меню выдвижное DrawerLayout + NavigationView, ну а после фрагменты
@@NecoRuChannel превосходно)
Спасибо.
Сергей, огромное спасибо за уроки! Вместе с тем, есть вопрос или пожелание: нельзя ли начать активнее использовать фрагменты, соответственно немного коснуться их жизненного цикла?
Спасибо за уроки!
Уже скоро юбилейный выпуск
Отличный урок )
Спасибо за урок! Правда привязал фрагменты к кнопкам, но они почему то открываются только дабл кликом, не подскажите в чем дело и как исправить это?
UPD
разобрался!
Используйте setOnItemSelectedListener вместо setOnNavigationItemReselectedListener, тем более что он больше не актуален
@@stepan_7 можно посмотреть прямо в коде, или погуглить (название метода deprecated )
Молодцом)
Всем привет! У всех получился урок? У меня botomView не развернулся с параметрами widh=match_constrain и healt=wrap_content. И меню не отобразилось.
Привет, проверь на эмуляторе, появилось это меню или нет. После новой версии Android Studio BumbleBee многие об этом пишут, но на эмуляторе все работает, новая версия пришла со многими багами в редакторе, на устройствах все работает.
@@NecoRuChannel О-о, это чудо! На смартфоне работает! Сергей, спасибо!
@@АрдуиноЯ Эта версия АС просто ужас, куча багов. На работу приложения это не влияет но делает жизнь сложнее разработчикам ))
@@NecoRuChannel согласен, особенно таким начинающим как я
Данную проблему все еще не решили.Я тоже с ней столкнулся и приуныл чуток,но благо полистал комментарии и нашел ответ.Спасибо вам за отзывы!
Подскажите пожалуйста как сделать переход между экранами с помощью BottomNavigationView
Здравствуйте
Подскажите как добавить shift анимацию, чтобы активные компонент смещал другие?
Большое спасибо, Лучший)
Спасибо за урок. такой вопрос. это обзятельно заучивать или просмотреть что бы знать? сейчас же как я понимаю используется Jetpack Compose
Спасибо! Все очень доступно объясняете:)
P.S. setOnNavigationItemSelectedListener уже @Deprecated
и как можно это исправить?
@@МаткаримВахабов-к7ч setOnItemSelectedListener
Привет! продвинутые платные уроки , что у тебя на сайте . Доска обьявлений и Client List - они на языке KOTLIN?
Привет, доска объявлений на котлин и есть на Java а вот клиент лист только джава
Супер полезно! Спасибо!!!
Сергей, во вкладке design BottomNavigationView не реагирует на изменение фона и т.п. при изменении layout_height на wrap_content превращается в полоску как будто пустой и иконки не отображаются но при запуске эмулятора все в порядке. Перезапуск и ребилд не помогают.
Привет, мне об этом не раз писали в последнее время, это скорее всего баг в новой версии АС
Все делаю как у вас, но на 1:22 когда ставлю layout_height wrap_content, BottomNavigationView сворачивается в горизонтальную полоску без содержимого и впоследствии когда добавляем иконки меню эта полоска так и остается полоской. Что у меня не так не пойму((
Причем при запуске приложения все отображается, а в режиме design нет
у меня то же самое
Круто. Когда будут следующие уроки?
Очень крутые уроки!
Спасибо. Благодаря вам, мое приложение стало более эргономичным. Есть вопрос касаемо дизайна. У меня при переключении между кнопками нет анимации. Как это можно решить?
Спасибо за урок! Будет ли видео про замену старого метода setOnNavigationItemSelectedListener? А то его уже зачеркнули))
Спасибо! Как сделать чтобы вместе с иконками отображался текст невыбранных элементов?
app:labelVisibilityMode="labeled". Но вот как сделать селектор для цвета текста я так и не поняла
@@homopet Спасибо, текст стал отображаться. Но цвет текста везде белый. Перепробовал разные настройки, но пока не понятно, как сделать чтобы цвет текста невыбранных элементов был таким же, как цвет самих невыбранных элементов?
@@domontowicz в общем у меня получилось. в ресурсах надо создать новую андроид ресурс директорию - color. в эту папку добавить файл (наш селектор). код такой
Здравствуйте. А сколько будем изучать андроид с котлин для начинающих?
Спасибо!
чтото с цветами запутался. вроде также делал только тулбар и навигатио меню разных цветов. точнее НавМеню просто белый стал и потом вообще не реагировал на смену цвета
Мне помог ребилд, т.к. с кодом всё верно
А проект сохранять лучше на диске Д???
Kanal syper.🔥🔥🔥🔥
Все просто и понятно объясняете, спасибо) а вы сами где находите такие полезные информаций? В официальном сайте или смотрите западных ютуберв
В официальной документации
полезно. спасибо.
Cпасибо за урок! А как убрать title под иконкой, что бы просто иконка была? А то ругается если вручную просто убрать title
это нужно в атрибутах у BottomNavigationView выбирать:
app:labelVisibilityMode="unlabeled"
@@NecoRuChannel спасибо!
Спасибо. Лучший. Есть вопрос, нужно чтоб при нажатии на кнопку в приложении скачивался вордовский документ, как это сделать?
Готов оформить какую то подписку )
Очень помогают уроки, от других учителей все плывет, а тут все понятно! Класс.
Привет из Краснодара))
Подскажите пожалуйста, при клике "Назад", появляется предыдущий фрагмент, но при этом tab иконки не меняется на предыдущий фрагмент. Как можно решить?
Сергей, спасибо за ваши уроки!
В текущей версии setOnNavigationItemReselectedListener уже @Deprecated.
Помогите решить проблему: Не знаю почему, но Toast.makeText не работает, то есть подсказки не показываются. Первый щелчок показывает по item3, а дальше уже никакие нажатия не показывают подсказку.
привет, ты не то пишешь нужно setOnNavigationItemSelected а ты пишешь Reselected
ого, как оперативно!!! Спасибо огромное, Сергей! Исправила и всё заработало! Ура!!!
@@tanita1170 Отлично👍
Откуда такое количество знаний :)
Я ставлю у BottomNavigationView - android:layout_height="wrap_content", но у меня высоты как-будто вообще нет, просто линия по ширине растянутая получается, как решить
это баг в андроид студио, проверь если на эмуляторе работает то это баг и не обращай внимание
Блин у меня в 2023 , уже нет атрибута колор в селекторе, не дает выбрать никак. Но и без него в принципе нормально работает все. Но скорее всего от темы зависит
что сейчас писать вместо setOnNavigationItemReselectedListener?
Создайте телеграмм чат , в котором начинающие разработчики могли бы делиться опытом
Вы разработчик? Создайте сами =) Как минимум я подтянусь и еще одного товарища позову =))
Лучшее практическое пособие к документации!
setOnNavigationItemSelectedListener, который теперь Deprecated, заменил на setonItemSelectedListener.
P.S. Пока разбирался с Deprecated, наткнулся на все ошибки указанные в комментариях, их иногда полезно читать, особенно ответы автора) Зато теперь знаю, чем селектет от реселектед отличается.
как сделать переход на другие activity по нажатию кнопки ?
Это я уже показывал на уроках в самом начале
@@NecoRuChannel можно ссылку, пожалуйста ? именно чтобы из BottomNavigationView можно было переходить по другим activity
@@vbiznes_ru я думаю, что вам нужно пересмотреть другие уроки из этого плейлиста. Там этой теме уделено очень много уроков.
Добрый день. Работаю с png картинками вместо icon,при выборе атрибута меню не появляются кнопки. Сама панель bottomNavigation просто исчезает. С чем это может быть связано?
Спасибо за уроки.
setOnNavigationItemSelectedListener() Deprecated . Как узнать что ее заменяет сейчас?
Обычно достаточно навести курсором и выскочит окошко, в котором будет предложены альтернативные варианты.
Добрый день, а возможно ли как-то сделать, чтобы поворот экрана был только portrait, а то там же когда телефон переворачиваешь активити уничтожается
Да возможно. Можно просто прописать в onCreate следующую функцию:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
@@NecoRuChannel Спасибо!
Здраствуйте Сергей а что использовать место setOnNavigationItemSelectedListener а то он перечеркнут а как я понял это значит что его скоро его нельзя использовать
Не знаю актуально вам еще или нет, используется setOnItemSelectedListener, абсолютно аналогично
@@ChetyreSem спасибо большое
@@кирюха-у1й не за что)
Не могу разобраться, как сделать что бы всегда под иконкой текст был, а то он появляется только когда state_checked
Разобрался в activity_main.xml добавил app:labelVisibilityMode="labeled"
и пришлось цвет текста меню удалить и в самой теме его изменить и поставил NoActionBar так убралась верхняя ненужная хрень)
У меня смена цвета иконок не работает через selector. При подключении селектора к ittemIconTint иконки становятся розового цвета вне зависимости от того какие там выбраны цвета.
Удалось установить свои цвета только создав и применив стиль к атрибуту theme. Не знаю насколько это правильно.
у меня так же было, оказалось, что вместо android:color, указал android:drawable. поменял на android:color и заработало. возможно у тебя так же было
setOnNavigationItemSelectedListener -- deprecated изменил на setOnItemSelectedListener, но приложение в эмуляторе даже не запускается, has stopped и все! Никаких ошибок андроид студио не показывает, помогите пожалуйста куда смотреть?
Настройка антивируса помогла запустить, в коде ошибок не обнаружено.)
Как из кода можно нажать на элемент BottomNavigationView
Доброго времени суток, нажимаю wrapcontent и оно схлопывается внизу, ничего не отприсовывается, даже не знаю, что поделать
Даже, если цвет изменить, ничего не не происходит
Хорошо рассказываешь , приятно слушать ! 👌👍👏
Хотя немного запутываешь объясняя не последовательно, с ссылками на то и это, но это мелочи. Смотрю твои видосы и руки чешутся написать прогу под андроид. Останавливает только мысль про 100500 недописанных проектов под микроконтроллеры, страшно забыть про них увлекшись изучением нового 🤣. Все равно придётся писать под андроид , квартира переполнена разными контроллерами . Мониторить и управлять всем с телефона очень удобно .
Тогда добро пожаловать в клуб незаконченных проектов🤣 У меня тоже их 1000000 ннзаконченных)))
@@NecoRuChannel В итоге я не удержался , установил андроид студию.
Сколько пакетов она подтягивает, уже два часа идет закачка и установка . Студия скачалась за пару минут. Посыпались ошибки установки . Надеюсь мне повезёт и я смогу запустить в эмуляторе заветную фразу " Привет мир " в течении нескольких часов))). Веселье началось 🤣🤣🤣
@@forcingautomotiveelectroni7644 В итоге все получилось?
@@OCEH6 Там дел было на десять минут. Что-то глюкануло , наверное андроид студия. Перезагрузил комп, снова выбрал нужные пакеты, все очень быстро скачалось и установилось. Настроил эмулятор и готово, заветная фраза на экране, еще пару минут настроек и приложение запустилось на реальном телефоне ))). Один нюанс все-же остался. Компиляция шла очень долго. Вышла подсказка, что антивирус мешает процессу компиляции и подсказка как это исправить. Заморачиватся не стал пока, оставил на следующий раз.
@@forcingautomotiveelectroni7644 Очень хорошо! Добро пожаловать 😁
круто
Спасибо! У меня метод setOnNavigationItemSelectedListner зачеркнут (deplicated). Работает setOnItemSelectedListner...
Даже в документации этого не исправили
не понимаю., у меня почему то чтобы я не исправлял фон белый у BottomNavigationView и иконки не добавляются
Такая же фигня
setOnNavigationItemSelectedListener DEPRECATED. Как я понимаю, появился новый вид записи. Подскажите пожалуйста, как решить эту проблему)
используйте вместо нее setOnItemSelectedListener
+!
setOnNavigationItemSelectedListener деприкатед
и что с ним делать? я просто новичок и не понимаю ,почему у меня зачеркнуто
binding.bNav.setOnItemSelectedListener {
when (it.itemId) {
R.id.
}
true
}
R.id. не находит в bottom_menu.xml мои id кнопки в чем может быть проблема ?
Если делать не через viewBinding (binding) то все работает.
Сергей, спасибо за уроки! Хотел бы попросить вас подсказать, сейчас binding.bMenu.setOnNavigationItemReselectedListener Deprecated. Но если я использую NavigationBarView.OnItemSelectedListener{} то ничего не происходит, насколько я понял, потому что не обращаюсь к меню bNav, но мне пока сложно понять из документации, как это сделать. Подскажите пожалуйста.
ReselectedListener нам вобще не нужен, зачем ты его используешь?
@@NecoRuChannel Андроид студио так пишет Use NavigationBarView.setOnItemReselectedListener(NavigationBarView.OnItemReselectedListener) instead.
@@ВасилийПупкин-р2ж нет, это не тот слушатель
Не появляется сообщение при использовании Toast.makeText(this,"item2",Toast.LENGTH_LONG).show() . В 28 тоже не появилось. Ошибок нет.
Аналогичная проблема. Нашли решение?
binding.bNav..setOnItemSelectedListener { item ->
when (item.itemId) {
}
true
}
огромное спасибо, поглащаю информацию по 5+ часов в день) впереди еще мнооого часов) + ява + компос и тп. низкий поклон за труды.
п.с. метод устарел, использовал другой. работает точно так-же
bindMain.bNav.setOnItemSelectedListener {
when (it.itemId) {
R.id.item1 -> {Toast.makeText(this, "item1", Toast.LENGTH_SHORT).show()}
R.id.item2 -> {Toast.makeText(this, "item2", Toast.LENGTH_SHORT).show()}
R.id.item3 -> {Toast.makeText(this, "item3", Toast.LENGTH_SHORT).show()}
R.id.item4 -> {Toast.makeText(this, "item4", Toast.LENGTH_SHORT).show()}
}
Прошло 4 месяца) как успехи?
@@Airat2301 учусь) сейчас бек разбираю (ктор с постгрессом)
Спасибо!
Спасибо!!!