Виджет столбца dr aws строка между дочерними элементами, когда они заключены в указанный c виджет с украшением. Как я могу вылечить это? - PullRequest
0 голосов
/ 20 марта 2020

Проблема видна на прикрепленном скриншоте.

Screenshot of what is happening

Код основного виджета:

Column(
  mainAxisAlignment: MainAxisAlignment.start,
  children: [
    Flexible(
      child: Decor(
        child: Container(),
      ),
      flex: 1,
    ),
    Flexible(
      child: Decor(
        child: Container(),
      ),
      flex: 6,
    )
  ],
);

Код виджет декора:

Container(
  decoration: BoxDecoration(
    color: COLOR,
  ),
  margin: const EdgeInsets.symmetric(
    horizontal: MEDIUM_PADDING,
  ),
  padding: const EdgeInsets.all(MEDIUM_PADDING),
  width: 300.0,
  child: child,
);

Ответ заранее "Зачем вам вообще нужен такой виджет декора"? Оба гибких варианта будут заполнены данными какого-либо рода. Второй гибкий будет с ListView внутри, а первый будет «Заголовком» для того, что находится внутри ListView. Данные извлекаются с сервера каждые 10 секунд, поэтому основной виджет оборачивается StreamBuilder.

Проблема в том, что StreamBuilder не может быть уменьшен до размера его дочернего элемента, тогда как ListView может, поэтому я обертываю и «Заголовок», и ListView в Decor, чтобы серый фоновый цвет не занимал все доступное пространство на экран, который создает черную линию, видимую на скриншоте?

Так что вопрос: есть ли способ удалить черную линию между двумя виджетами в столбце?

Кроме того, если вы знаете маги c о том, как уменьшить StreamBuilder до размера его дочернего элемента, пожалуйста, ответьте также здесь.

1 Ответ

1 голос
/ 20 марта 2020

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

Container(
 decoration: BoxDecoration(
   color: COLOR,
   border: Border.all(width: 0, color: COLOR) //added line
  ),
 margin: const EdgeInsets.symmetric(
  horizontal: MEDIUM_PADDING,
  ),
 padding: const EdgeInsets.all(MEDIUM_PADDING),
 width: 300.0,
 child: child,
);

Сначала я подумал, что установка ширины границы в 0 поможет, но это не сработало .. Цвет сделал

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...