Флаттер - нижняя часть переполнена стэком в 230 пикселей - PullRequest
0 голосов
/ 07 февраля 2019

кто-нибудь, помогите мне, пожалуйста, введите описание изображения здесь https://imgur.com/yGEzU2n

Мне нужно, чтобы размер окна автоматически изменялся для содержимого.

Я новичок в флаттере, есть предложения?

bodyWidget(BuildContext context) => Stack(

children: <Widget>[
  Positioned(
    height: MediaQuery.of(context).size.height / 1.5, //Altura del box cone squinas redondeadas
    width: MediaQuery.of(context).size.width - 20,
    left: 10.0,
    top: MediaQuery.of(context).size.height * 0.1,
    child: Card(
      shape: RoundedRectangleBorder(
        borderRadius: BorderRadius.circular(15.0),
      ),
      child: Column(
        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
        children: <Widget>[
          SizedBox(
            height: 130.0, // espacion entre el texto de la descripcion y la foto del producto
          ),

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

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

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

Прокрутка

Второй вариант:

resizeToAvoidBottomPadding: false 

Это должно заставить ошибку исчезнуть

Вы можете увидеть пример кода:

appBar: new AppBar(title: new Text('Create A Parking Slot')),
      body: new Center(
          child: new SingleChildScrollView(
              child: new Container(
        margin: EdgeInsets.fromLTRB(10.0, 20.0, 10.0, 10.0),
        color: Colors.white,
        child: new Column(children: <Widget>[
          new TextField(
            decoration: InputDecoration(labelText: "Title*"),
          ),
          new TextField(
            decoration: InputDecoration(labelText: "Available Space in Sqft*"),
          ),
          new TextField(
            decoration: InputDecoration(labelText: "Available Space*"),
          ),
          new TextField(
            decoration: InputDecoration(labelText: "Address*"),
          ),
          new TextField(
            decoration: InputDecoration(labelText: "Contact Number*"),
          ),
          new ListTile(
            title: const Text('Select Your Plan'),
            trailing: new DropdownButton<String>(
              value: "Hourly",
              onChanged: (String newValue) {
                print(newValue);
              },
              items:
                  <String>['Hourly', 'Weekly', 'Monthly'].map((String value) {
                return new DropdownMenuItem<String>(
                  value: value,
                  child: new Text(value),
                );
              }).toList(),
            ),
          ),
          new Container(
            height: 1.0,
            width: width,
            color: Colors.grey,
          ),
          new TextField(
            decoration: InputDecoration(labelText: "Rate*"),
          ),
          new UploadImage(),
          new RaisedButton(
            child: const Text('Create'),
            color: Theme.of(context).accentColor,
            textColor: Colors.white,
            elevation: 4.0,
            splashColor: Colors.blueGrey,
            onPressed: () {
              // Perform some action
              //button1(context);
            },
          )

          //
        ]),
      )))
0 голосов
/ 07 февраля 2019

Используйте resizeToAvoidBottomPadding: false.Читайте об этом здесь .

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