RenderBox не выкладывался на флаттер - PullRequest
0 голосов
/ 27 мая 2020

Я создаю настраиваемую панель приложений, в которой есть панель поиска и текстовый поиск рядом с панелью поиска

 appBar: AppBar(
          backgroundColor: Colors.white,
          actions: <Widget>[
            Row(
              children: <Widget>[
                Expanded(
                  child: Container(
                    margin: EdgeInsets.all(8.0),
                    decoration: BoxDecoration(
                      border: Border.all(color: Colors.grey, width: 1),
                      borderRadius: BorderRadius.all(Radius.circular(12.0)),
                    ),
                    child: TextField(
                      autofocus: false,
                      onChanged: (value) {
                      ....
                      },
                      keyboardType: TextInputType.text,
                      decoration: InputDecoration(
                          hintText: "Search",
                          prefixIcon: Icon(Icons.search),
                          border: InputBorder.none),
                    ),
                  ),
                ),
                Text("search")
              ],
            )
          ],
          elevation: 0,
        ),

Ошибка

════════ Exception caught by rendering library ═════════════════════════════════
RenderFlex children have non-zero flex but incoming width constraints are unbounded.
The relevant error-causing widget was
    Row 
lib/ui/search_unit_owner.dart:49
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderFlex#fe581 relayoutBoundary=up13 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 1687 pos 12: 'hasSize'

Ответы [ 2 ]

1 голос
/ 27 мая 2020

Вы должны добавить Контейнер и указать ширину под размер экрана.

 AppBar(
        backgroundColor: Colors.white,
        actions: <Widget>[
          Container(
            width: MediaQuery.of(context).size.width,
            child: Row(
              children: <Widget>[
                Expanded(
                  child: Container(
                    margin: EdgeInsets.all(8.0),
                    decoration: BoxDecoration(
                      border: Border.all(color: Colors.grey, width: 1),
                      borderRadius: BorderRadius.all(Radius.circular(12.0)),
                    ),
                    child: TextField(
                      autofocus: false,
                      onChanged: (value) {},
                      keyboardType: TextInputType.text,
                      decoration: InputDecoration(
                          hintText: "Search",
                          prefixIcon: Icon(Icons.search),
                          border: InputBorder.none),
                    ),
                  ),
                ),
                Text("search")
              ],
            ),
          )
        ],
        elevation: 0,
      ),
0 голосов
/ 27 мая 2020
  • Действия на панели приложений используются для добавления sth, например IconButon ...
  • В настраиваемую панель приложений с полем поиска вы можете создать виджет реализует PreferredSizeWidget Пример:

    https://gist.github.com/dangngocduc/27f10cb0860ede6c8da6d280b4f917b9

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