Как проверить размер контейнера по ширине / высоте - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь проверить ширину и высоту контейнера.Я пытаюсь сделать что-то вроде этого:

expect(
        find.byWidgetPredicate((Widget widget) =>
            widget is Container  && widget.width == 48),
        findsOneWidget);

но.к сожалению, если я наберу widget.width, он скажет, что ширина получателя не определена для класса Container.

Ответы [ 2 ]

1 голос
/ 11 июня 2019

В Container такого свойства нет. Вместо этого он содержит BoxConstraints с минимальной и максимальной шириной Container. Предполагая, что minWidth и maxWidth равны в вашем случае, рассмотрите возможность использования:

expect(
  find.byWidgetPredicate((Widget widget) {
    if (widget is Container) {
      BoxConstraints width = widget.constraints.widthConstraints();
      return (width.minWidth == width.maxWidth) && (width.minWidth == 48);
    } else {
      return false;
    }
  }),
  findsOneWidget,
);

Для высоты:

expect(
  find.byWidgetPredicate((Widget widget) {
    if (widget is Container) {
      BoxConstraints height = widget.constraints.heightConstraints();
      return (height.minHeight == height.maxHeight) && (height.minHeight == 48);
    } else {
      return false;
    }
  }),
  findsOneWidget,
);
1 голос
/ 11 июня 2019

попробуй:

widget.constraints.widthConstraints();
...