Клавиатура находится перед HTML-редактором flutter -FLUTTER

#flutter #html-editor

#flutter #html-редактор

Вопрос:

Моя проблема в том, что клавиатура появляется перед виджетом текстового редактора HTML при открытии клавиатуры. Я делаю всю страницу прокручиваемой при открытии клавиатуры. он работает с обычными текстовыми полями, виджетами текстовой области, но не работает в HTML-редакторе flutter. Кто-нибудь может предложить решение для этого?

Это скриншот проблемы. Прикрепленное изображение показывает проблему

  return Container(
  margin: EdgeInsets.only(
    top: 14,
  ),
  child: Column(
    crossAxisAlignment: CrossAxisAlignment.start,
    mainAxisAlignment: MainAxisAlignment.start,
    children: <Widget>[
      Container(
        margin: EdgeInsets.only(
            left: SizeConfig.safeBlockVertical * 1.5, top: 14),
        child: Text(
          "Enter Message",
          style: TextStyle(
              fontSize: 14,
              fontFamily: 'UbuntuRegular',
              color: MyColor.textColor),
        ),
      ),
      Container(
        margin: EdgeInsets.only(
            top: SizeConfig.safeBlockVertical * 3,
            right: SizeConfig.safeBlockVertical * 1),
        padding: EdgeInsets.only(
          left: SizeConfig.safeBlockHorizontal * 3,
          right: SizeConfig.safeBlockHorizontal * 3,
          bottom: SizeConfig.safeBlockHorizontal * 3,
        ),
        child: HtmlEditor(
          hint: "Your text here...",
          key: keyEditor,
          height: 400,
          useBottomSheet: false,
          showBottomToolbar: false,
        )
      ),
    ],
  ),
);
 

Это мой код

Ответ №1:

Попробуйте обернуть html — редактор внутри a Container и установить значение margin to MediaQuery.of(context).viewInsets . Вот так:

 Container(child: YourHtmlEditor(),
margin: MediaQuery.of(context).viewInsets,)
 

Комментарии:

1. HTML-редактор уже заключен в контейнер и также имеет поля. Мой код приведен выше, пожалуйста, посмотрите на него и скажите мне, какие изменения необходимы

2. margin: MediaQuery.of(context).viewInsets , должно быть именно таким. То margin , что вы добавили, не будет работать.

3. margin: MediaQuery.of(context).viewInsets использовал этот, но не работает

4. Попробуйте поместить поле на добавленный вами контейнер с верхним полем 14. (первое поле)

5. Я тоже пробовал это делать, но ничего не вышло. Этот виджет помещен внутри столбца , и этот столбец заключен в SingleChildScrollView . Я думаю, что маржа — это не проблема.