Flutter: переполнение клавиатуры с помощью My Dialog

Я пытаюсь добавить TextField в диалоговое окно, но когда появляется клавиатура, она дает переполнение.

Мое диалоговое изображение

Изображение диалогового окна

Когда появляется клавиатура

«Когда

Вот как выглядит часть моего кода:

AlertDialog(
    content: new ListView(
      shrinkWrap: true,
  children: <Widget>[
    Text(
      "How Would You Rate Our App?",
      style: TextStyle(fontSize: 16.0, fontWeight: FontWeight.bold),
      textAlign: TextAlign.center,
    )

person ShrJamal    schedule 24.07.2018    source источник
comment
Поместите содержимое в SingleChildScrollView   -  person Günter Zöchbauer    schedule 24.07.2018
comment
Не разрешено: AlertDialog (содержимое: SingleChildScrollView (дочерний элемент: новый столбец (дочерний элемент: ‹Widget›[ Text()])....   -  person ShrJamal    schedule 24.07.2018


Ответы (4)


Вы можете просто использовать SingleChildScrollView:

 AlertDialog(
        content: SingleChildScrollView(
          scrollDirection: Axis.vertical,
        child: Column(
          children: <Widget>[
            Text(
              "How Would You Rate Our App?",
              style: TextStyle(fontSize: 16.0, fontWeight: FontWeight.bold),
              textAlign: TextAlign.center,
        ),
        ]
    )
    )
)
person Mohammad Meshkani    schedule 02.04.2019
comment
это, кажется, не исправить. - person 68060; 07.12.2020

Проблема на экране позади Диалога. Я столкнулся с той же проблемой, но ни одно из приведенных выше решений не работало с моим кодом, поэтому я использовал этот код:

resizeToAvoidBottomInset: false,

Эта строка находится под возвратом Scaffold. Я нашел это решение на этом страница

person Qudor Eng    schedule 22.09.2020
comment
В вопросе нет ссылки на return Scaffold. Не могли бы вы подробнее рассказать о найденном решении, включив в него все необходимые детали? - person Exelian; 22.09.2020
comment
Это должен быть лучший ответ, - person abrsh; 25.09.2020
comment
единственное решение, которое сработало для меня, спасибо! - person 68060; 07.12.2020
comment
@ 68060 не надоело в последнее время. Несколько месяцев назад работало. - person Mohammad Meshkani; 13.12.2020

Обертывание этого кода вокруг диалога устранило эту проблему для меня:

class _SystemPadding extends StatelessWidget {
  final Widget child;

  _SystemPadding({Key key, this.child}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    var mediaQuery = MediaQuery.of(context);
    return new AnimatedContainer(
        padding: const EdgeInsets.only(bottom: mediaQuery.viewInsets.bottom),
        duration: const Duration(milliseconds: 300),
        child: child);
  }
}
person Ares    schedule 28.08.2019

Оповещение о "полосах переполнения" на самом деле на экране за диалоговым окном, поэтому в самом диалоговом окне нет ошибки.

Просто попробуйте добавить SingleChildScrollView() вокруг дочернего элемента экрана позади! (У меня была такая же ошибка, и это сработало для меня)

person tahaphuong    schedule 18.05.2020