Flutter - Могу ли я ограничить максимальную ширину дочерних виджетов виджета Expanded ()? - PullRequest
0 голосов
/ 17 февраля 2020

Я сталкиваюсь с проблемой, когда я хочу ограничить максимальную ширину дерева подвиджетов моего дерева столбцов. У меня есть что-то вроде этого. Проблема в нижней части, где я использую «Расширенный» виджет. Я не могу использовать ConstrainedBox () вокруг Expanded (), потому что Expanded хочет быть непосредственно под столбцом (или строкой) в моем понимании

Любые идеи, как ограничить ширину этой части моего дерева генерируется с помощью функции _buildGateways (context)?

Спасибо !!

      @override
  Widget build(BuildContext context) {
    if ((MediaQuery.of(context).size.width > MIN_LARGE_SCREEN_WIDTH) &&
        (MediaQuery.of(context).size.height > MIN_LARGE_SCREEN_HEIGHT)) {
      isLargeScreen = true;
    } else {
      isLargeScreen = false;
    }

    return WillPopScope(
      onWillPop: () => _triggerPopUpdate(false),
      child: Scaffold(
        body: Row(
          children: <Widget>[
            isLargeScreen ? mySidePanel(context) : Container(),
            Expanded(
              child: RefreshIndicator(
                key: _refreshIndicatorKey,
                onRefresh: () => _refreshCommissionData(userPull: true),
                child: Center(
                  child: SafeArea(
                    child: Column(
                      mainAxisAlignment: MainAxisAlignment.start,
                      crossAxisAlignment: CrossAxisAlignment.stretch,
                      children: <Widget>[
                        Stack(
                          children: <Widget>[
                            myMenuButton(
                              onPressed: null,
                              icon: MENU_SETUP_ICON,
                              name: 'Setup',
                              slim: true,
                              colorized: true,
                              heroTag: "heroSetup",
                            ),
                            Positioned(
                              left: 5,
                              bottom: 5,
                              child: FlatButton(
                                  onPressed: () => _triggerPopUpdate(true),
                                  child: Icon(
                                    Icons.chevron_left,
                                    color: Theme.of(context).accentColor,
                                    size: 44,
                                  )),
                            ),
                            Positioned(
                              right: 0,
                              bottom: 5,
                              child: FlatButton(
                                  onPressed: () => searchDialog(),
                                  child: Icon(
                                    Icons.search,
                                    color: Theme.of(context).accentColor,
                                    size: 44,
                                  )),
                            ),
                          ],
                        ),
                        buildOfflineWarning(context),
                        buildSearchFilter(),
                        Expanded(
                          child: LimitedBox(
                            maxWidth: 900,
                              child: _buildGateways(context)),
                        ),
                      ],
                    ),
                  ),
                ),
              ),
            ),
          ],
        ),
      ),
    );
  }
...