Flutter ReorderableListView - перетаскивается. При перетаскивании гибкий элемент увеличивается до размера экрана. - PullRequest
1 голос
/ 15 апреля 2020

У меня есть приложение, которое использует ReorderableListView, но у меня есть элемент, который содержит собственный список, и когда я его перетаскиваю, его высота увеличивается до высоты экрана. Когда переход завершен, элемент возвращается к исходному размеру. как это выглядит, когда его не перетаскивают: введите описание изображения здесь

против того, как оно выглядит при перетаскивании (элемент увеличивается до размера экрана): введите описание изображения здесь

это виджет элемента:

  Widget build(BuildContext context) {
return Container(
  height: null,
  child: Row(
    mainAxisSize: MainAxisSize.max,
    children: <Widget>[
      Flexible(
        child: Column(
          children: <Widget>[
            SizedBox(
              height: 10,
            ),
            Row(
              children: <Widget>[
                Expanded(
                  child: Container(
                    child: Directionality(
                      textDirection: TextDirection.rtl,
                      child: Theme(
                        data: new ThemeData(
                          primaryColor: Colors.black,
                          primaryColorDark: Colors.black,
                        ),
                        child: TextField(
                          style: TextStyle(
                            height: 1,
                          ),
                          decoration: new InputDecoration(
                            labelText: "רשומה חדשה",
                            fillColor: Colors.white,
                            border: new OutlineInputBorder(
                              borderRadius: new BorderRadius.circular(25.0),
                              borderSide: new BorderSide(
                                  color: Colors.black
                                      ,width: 1
                              ),
                            ),
                            //fillColor: Colors.green
                          ),
                          focusNode: _mainFocusNode,
                          controller: _textController,
                          keyboardType: TextInputType.multiline,
                          maxLines: null,
                        ),
                      ),
                    ),
                  ),
                ),
                Container(
                  width: 40,
                  child: InkWell(
                    child: IconButton(
                      onPressed: () {
                        setState(() {
                          if (_textController.text.length > 0) {
                            _rows.add(_textController.text);
                            listHolderManager.updateValue(0);
                            _textController.text = "";
                            _counter += 1;
                          }
                        });
                      },
                      icon: new Icon(MaterialIcons.add_circle),
                    ),
                  ),
                )
              ],
            ),
            SizedBox(
              height: 10,
            ),
            Container(
                decoration: BoxDecoration(
                    border: Border.all(
                  color: Colors.black,
                )),
                child: _buildStringsList())
          ],
        ),
      ),
    ],
  ),
);

}

Я могу понять, почему Flexible (я также пробовал Expanded вместо него) может вызвать его, но я понятия не имею другого решения, спасибо!

1 Ответ

0 голосов
/ 16 апреля 2020

ListView пытается использовать все доступное пространство. Оберните его в Container и передайте height конструктору контейнера.

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