Flutter: как настроить / переопределить свойства основного кода flutter без копирования целых файлов?

Этот вопрос связан со следующей проблемой StackOverflow: нижний лист с начальной высотой половина экрана, и если он прокручивается, высота увеличивается до полного экрана

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

Сейчас мое «решение» - полностью скопировать файл bottom_sheet.dart из официальной кодовой базы Flutter и удалить только строку 169 со свойством maxHeight: https://github.com/flutter/flutter/blob/1ad538e454c77496fbd068b9e8b5f8b61c2f6d96/packages/flutter/lib/src/material/bottom_sheet.dart#L169

Есть идеи сделать это более элегантно?

Спасибо!

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

CopsOnRoad 31.10.2018 14:26
4
1
987
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы не можете. Вы должны клонировать источники, если хотите внести в них изменения.

Это частично добровольно. Flutter специально разработан, чтобы вы могли легко копировать исходники и вносить некоторые изменения.


Если это слишком плохо, вы можете вместо этого трепетать вилкой.

Flutter - это очень просто для fork, поскольку процесс установки - не что иное, как простой клон git:

  • перейти к http://github.com/flutter/flutter
  • нажмите на fork
  • замените локальный SDK этой вилкой
  • внести изменения в источники

Я пытаюсь отредактировать FlexibleSpaceBar, когда я копирую его класс и пытаюсь запустить только его, не редактируя его, он дает мне `` вам нужно обернуть его с помощью FlexibleSpaceBar.createrSetting '', когда я оборачиваю его этим виджетом, который он запускает, но полоска панели приложения не выполняет свою функцию должным образом

Mohamed Gaber 23.12.2019 09:14

да, это решение - это то, что нужно сейчас, но что, если я пытаюсь сделать пакет флаттера? Затем мне нужно отправить весь код с одним небольшим изменением в отношении одного конкретного виджета. Должны быть другие способы.

Abhishek 28.04.2020 20:29

Другие вопросы по теме