Урок 24: "Основы Flutter - CustomSingleChildLayout и CustomMultiChildLayout"

Sdílet
Vložit
  • čas přidán 27. 07. 2024
  • Разбираю два самых гибких виджета во Flutter
    Пожертвования - boosty.to/lazyloadflutter
    ______
    Канал с анонсами в телеграм - t.me/lazyload_flutter
    ______
    Группа в телеграм - t.me/learnDartFlutter
    ______
    Группа в вк - club203125105
    ______
    00:00 - Вступление
    01:00 - CustomSingleChildLayout
    14:45 - CustomMultiChildLayout

Komentáře • 72

  • @advance5189
    @advance5189 Před 2 lety +7

    Даа... Голова конечно раскалывается)). Спасибо за такие прекрасные уроки.Если бы не вы, то не знаю кто бы мог такой бесплатный и продуктивный курс записать по Dart & Flutter )

  • @morrigan_ghost
    @morrigan_ghost Před 2 lety +6

    очень мало просмотров и комментариев, но вы продолжаете свой труд. Спасибо!

  • @ehson-lk3gz
    @ehson-lk3gz Před 3 lety +9

    оууу, будет бессонная ночь! спасибо за то , что вы делаете

  • @nicolaymusic
    @nicolaymusic Před 2 lety +5

    В Dart текст можно умножать на число, чтобы быстро увеличить количество текста. 'da' * 100 отобразится как сто раз 'da' подряд. Удобно для тестирования на большой текст.
    Спасибо за разбор виджетов)

  • @dmitry9088
    @dmitry9088 Před 2 lety +6

    "Flutter простой и лаконичный" - говорили они... 90 строк кода, чтоб разбить текст на три колонки так как нам нужно)) В свифте и реакт нэйтив так же?) А так мне нравится. Многое не до конца понимаю, но пишу код и делаю заметки. Думаю на реальных задачах как минимум буду знать, где искать ответ. А дальше с практикой станет понятнее)

  • @user-rh1pb2gk5k
    @user-rh1pb2gk5k Před 2 lety +1

    Хорошо что есть группа в вк, а в группе архивы на каждый урок. Без этого у меня бы лопнула голова при поиске ошибки в коде. Открыв нужный файл и сравнив его со своим и нашёл отличия почти сразу там где по многу раз проверял правильность написания кода, но почему именно так а не как у меня я сначала не понял. Поразмыслив при помощи простых подручных инструментах, ручки и листа бумаги, я нашёл объяснения своей проблеме и понял суть происходящего.
    Ещё раз спасибо за архив. Это мне сэкономило время и не пришлось по многу раз пересматривать видео в поисках решения проблемы.

  • @evgeniydoronin
    @evgeniydoronin Před 3 lety +16

    Огромное спасибо! Буду очень признателен если шрифт увеличите в последующих роликах, мелко все очень)

    • @LearnDartFlutter
      @LearnDartFlutter  Před 3 lety +7

      постараюсь не забыть это сделать, если забуду напоминай)

  • @flowerinpower
    @flowerinpower Před 3 lety +3

    Здравствуйте,
    Благодарю за то, что вы делаете! Ваш канал это находка. Всё очень круто: от голоса который приятно слушать, до вербозности подачи материала!
    Я посмотрел пока только единственный урок, но планирую посмотреть всё что у вас тут есть!

  • @HaKoIIuTeJIb
    @HaKoIIuTeJIb Před 3 lety +1

    Всегда пишу код вместе с вами, очень помогает усвоить материал. Спасибо большое.

  • @user-mr3of6up7c
    @user-mr3of6up7c Před 2 lety

    Жень, подписался на boosty. Ещё раз спасибо Тебе!!! И всех призываю, для нас копейки, а для Автора поддержка!

  • @sovrinfo
    @sovrinfo Před 3 lety +1

    Большое спасибо за ваш труд!!! Коммент в поддержку!

  • @user-iv3lt5ri5z
    @user-iv3lt5ri5z Před rokem

    Спасибо! Достаточно сложные для меня темы были, но попрактиковал после просмотра и все понял.

  • @user-jx8dh2de3e
    @user-jx8dh2de3e Před 3 lety

    Евгений, огромнейшее спасибо за ваш труд, это очень круто) Бонус вам в карму))

  • @ahliyorshodiev1986
    @ahliyorshodiev1986 Před 3 lety

    Спасибо за уроки очень помогли)

  • @shohzodzet
    @shohzodzet Před rokem

    Круто. Очень интересно, как детектив. Спасибо)

  • @user-fi3tm2oi2e
    @user-fi3tm2oi2e Před 2 lety

    Спасибо за ваши уроки. Очень подробно и главное понятно для того кто начал с нуля. Очень хотелось бы увидеть урок про различный сахарок и как его настраивать (на уровне джуна). А особенно про Ctrl+клик и описания которые подсказывает сама IDE и SDK. Перерыл весь интернет мамой клянусь нет нигде этого.

  • @volga_code
    @volga_code Před 2 lety

    отлично объясняешь! )

  • @user-mx1no7wu6u
    @user-mx1no7wu6u Před 2 lety +1

    Ваши лекции просто бомба!. Перерыл не один канал на русском или англ. но ваш контект просто лучший! Почти год учу Flutter, около полугода пишу реальный web проект по примеру архитектуры ментора. Казалось, что вот вот что то начинаю понимать! Но посмотрел я ваши уроки и осознал, что еще ничего толком не знаю) Надеюсь после ваших видео начну куда осознаннее использовать знания.

    • @user-bu5xw6yf8q
      @user-bu5xw6yf8q Před 2 lety

      Как ваши успехи с обучением?

  • @atommixz
    @atommixz Před rokem +2

    Кстати tight читается как тайт
    Align - Элайн
    Alignment - Элайнмент

  • @Egor-gy9bj
    @Egor-gy9bj Před 2 lety

    Дядя Жень, голова закипела!)

  • @romandg884
    @romandg884 Před 3 lety

    спасибо вам! ) огромное

  • @Anakin-fp2pf
    @Anakin-fp2pf Před 6 měsíci

    Пока что не особо все понял но "пока что" изучу разные источники, получу больше опыта и вернусь еще раз

  • @temirlandzholdoshbekov555
    @temirlandzholdoshbekov555 Před 3 měsíci

    👍👍👍👍👍

  • @valerijt4344
    @valerijt4344 Před 3 lety +2

    хороший разбор. спасибо!
    а будут видео про натягивание "бизнес-логики" на верстку?
    какой длинны планируется курс?

    • @LearnDartFlutter
      @LearnDartFlutter  Před 3 lety +2

      конечно, как только с версткой разберёмся. Там будет много уроков, начиная от setState заканчивая всеми архитектурами)

    • @LearnDartFlutter
      @LearnDartFlutter  Před 3 lety +2

      конечно будет и сеть и хранение данных и вот это вот все))

    • @valerijt4344
      @valerijt4344 Před 3 lety

      @@LearnDartFlutter хороший план.
      Планируется ли работа с периферией (гиро, NfC, Bluetooth)?

    • @LearnDartFlutter
      @LearnDartFlutter  Před 3 lety

      Не планировал, но возможно когда нибудь расскажу)

    • @valerijt4344
      @valerijt4344 Před 3 lety

      @@LearnDartFlutter это уже тонкости)
      Сначала "учи базу до отказу"

  • @user-ez2yf3yd3z
    @user-ez2yf3yd3z Před 2 lety

    OK!

  • @faizulla5838
    @faizulla5838 Před 2 lety

    Задача так и не решена, 27:20 разговор шел чтобы средний элемент остается по центру .... по ходу пьесы мы все таки согласились что это 49:23 тоже не плохо ... выходит не стоит этот огород городить, второй элемент будет все равно при всех способах смещен с центра... и не так как нас просили дизайнеры 26:34.
    3 урока за 1 день.... это просто жесть, мозг кипит )))

    • @LearnDartFlutter
      @LearnDartFlutter  Před 2 lety

      я уже не помню точно что я там делал, но разве я не поставил центральный элемент по центру? со смещением если какая то надпись больше?

  • @DarDarbl4
    @DarDarbl4 Před 3 lety +1

    Не воспринимай негативно, вопрос-совет может рассказывать сразу про более общие фундаментальные вещи, как ты делал в первых уроках, например сразу по месту рассказать что такое Делегат, ведь это понятие не встречалось ранее насколько я понял, и оно более широкое чем только Дарт/Флаттер. Ведь Delegate не просто так пишут, если знать суть понятия сразу станет ясно примерно что это и зачем по имени объекта)

    • @LearnDartFlutter
      @LearnDartFlutter  Před 3 lety +1

      Но это просто название класса в данном случае)

    • @DarDarbl4
      @DarDarbl4 Před 3 lety

      @@LearnDartFlutter Да, но название о чем то говорит не так ли? Про вопрос выбора имен что это сложная задача ты знаешь не по наслышке, правильных имен. Ок) You are the boss))

  • @hardway3595
    @hardway3595 Před 3 lety

    Евгений здравствуйте, отличный контент!
    При помощи делегата определяется размер CustomMultiChildLayout. В методе getSize жёстко установлена высота 100. По ширине всё сделано хорошо и гибко, но при добавлении контента в колонки, расширение контейнера по высоте не происходит, и контент просто не отображается. Вопрос в том как сделать, чтобы при увеличении высоты child'ов увеличивалась и высота родительского виджета?

  • @user-lo5nm4ov8l
    @user-lo5nm4ov8l Před 2 lety +1

    Очень сильно на самом деле тяжело понять зачем такую точную калибровку элементов делать. Я к середине если честно отключился для чего все это нужно. Но спасибо, последний лейаут классный. Нарисовал им зигу из контейнеров (не знаю для чего еще пока применить) (не одобряем)

    • @LearnDartFlutter
      @LearnDartFlutter  Před 2 lety +1

      Вообще я же сразу привел самый простой пример, выравнивание элементов как в appBar)

  • @faizulla5838
    @faizulla5838 Před 2 lety +1

    21:12 извините, как Вы "проваливаетесь" в виджет? или какое сочетание клавиш? на андроидСтудио теже?

  • @khurshidddbek
    @khurshidddbek Před 2 lety

    37:20

  • @odnonoguypirat
    @odnonoguypirat Před 10 měsíci

    45:21 почему HOffset а не XOffset? типо x y

  • @aleksandrsviridenko5079
    @aleksandrsviridenko5079 Před rokem +1

    А почему нам нельзя вставить SizedBox вместо какого-то элемента тем самым на экране будет пусто? Просто ради такого пользоваться таким сложным виджетом , не очен ьпонятно зачем. Но вот некоторые вещи конечно интересные можно делать с ним.

    • @lucefan2816
      @lucefan2816 Před 3 měsíci

      Я не понял вообще зачем этот виджет без него можно сделать, очень сложный.

  • @user-of8gj8ix6y
    @user-of8gj8ix6y Před 3 lety

    А про bloc планируются уроки?

    • @LearnDartFlutter
      @LearnDartFlutter  Před 3 lety

      да)

    • @user-of8gj8ix6y
      @user-of8gj8ix6y Před 3 lety

      @@LearnDartFlutter но наверное ещё не скоро?)

    • @LearnDartFlutter
      @LearnDartFlutter  Před 3 lety

      да, не скоро, сначала надо основы рассказать)

    • @user-of8gj8ix6y
      @user-of8gj8ix6y Před 3 lety

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

    • @LearnDartFlutter
      @LearnDartFlutter  Před 3 lety

      вообще там есть целый сайт с докой и кучей примеров по блоку)

  • @murodaliismailov2503
    @murodaliismailov2503 Před rokem +1

    заливайте все коды в github please

  • @atommixz
    @atommixz Před rokem

    Если будете перезаписывать, то увеличьте шрифт, на мобилке не комфортно даже с зумом смотреть. И фон белый уберите отовсюду, в глаза лупит когда на ночь смотришь. И хрящами не щелкайте, вредная привычка и слышать это тоже не приятно. Варешку на одну руку наденьте на период отвыкания.
    В остальном спасибо.

  • @johnjohnson9119
    @johnjohnson9119 Před 3 lety

    Спасибо, все прекрасно, в качестве пожелания - произносите пожалуйста правильно английские слова, а то когда слышу "алигмент" да "тигхт" просто бесится начинаю. Это же нетрудно послушать как они произносятся.

    • @LearnDartFlutter
      @LearnDartFlutter  Před 3 lety

      спасибо за отзыв, но с английскими словами извини, я с ним не дружу) читать читаю, а произношу плохо) и улучшать эти навыки только ради хороших уроков не очень продуктивно(

    • @LearnDartFlutter
      @LearnDartFlutter  Před 3 lety

      Но вообще если очень хочется, можешь мне в телеграмме писать, какие ошибки я допускаю в произношении, возможно и запомню))

    • @poteryal_trusy
      @poteryal_trusy Před 3 lety +1

      @@DartMitai обесценивание фидбека не принесет улучшений.
      На обеих сторонах если интересны улучшения, фидбека дайте и примите больше, йода говорит

    • @user-jx8dh2de3e
      @user-jx8dh2de3e Před 3 lety

      Евгений делает крутой контент, а ему за английский предъявляют :)

    • @TheAlasheev
      @TheAlasheev Před 2 lety

      @@user-jx8dh2de3e ну тхин (tight) реально мозг выносит)

  • @ekrem_qb
    @ekrem_qb Před 2 lety

    *Я новичок во Flutter, но к концу видео появилось ощущение, что автор и сам уже запутался в том, как и что хотел сделать изначально. Если кому-то нужно центрировать второй элемент, в независимости от размеров других элементов, то можно немного изменить метод performLayout() на что-то типа этого:*
    const minOtherElementWidth = 100;
    final middleElementMaxWidth = size.width - minOtherElementWidth;
    final middleElementSize = layoutChild(
    2,
    BoxConstraints.loose(Size(middleElementMaxWidth, size.height)),
    );
    var middleElementHOffset = size.width / 2 - middleElementSize.width / 2;
    final middleElementYOffset =
    size.height / 2 - middleElementSize.height / 2;
    positionChild(2, Offset(middleElementHOffset, middleElementYOffset));
    final leftElementMaxWidth = middleElementHOffset;
    final leftElementSize = layoutChild(
    1,
    BoxConstraints.loose(Size(leftElementMaxWidth, size.height)),
    );
    final leftElementYOffset = size.height / 2 - leftElementSize.height / 2;
    positionChild(1, Offset(0, leftElementYOffset));
    final rightElementMaxWidth =
    size.width - middleElementHOffset - middleElementSize.width;
    final rightElementSize = layoutChild(
    3,
    BoxConstraints.loose(Size(rightElementMaxWidth, size.height)),
    );
    final rightElementHOffset = size.width - rightElementSize.width;
    final rightElementYOffset = size.height / 2 - rightElementSize.height / 2;
    positionChild(3, Offset(rightElementHOffset, rightElementYOffset));

    • @slavadmitriev7302
      @slavadmitriev7302 Před 2 lety

      Если изменить вторую строчку на final middleElementMaxWidth = size.width - minOtherElementWidth * 2.5; Будет выглядеть так, как и должно, ровно 33% каждому. При min = 100