Трепещущее нижнее поле полосы прокрутки текстового поля

#flutter

#трепетание

Вопрос:

Когда я вставляю многострочное текстовое поле внутри полосы прокрутки, затем добавляю много строк, затем прокручиваю его до конца, строка перемотки с правой стороны не доходит до конца. Почему?

Смещение полей редактирования и полосы прокрутки

 Widget _buildTextField() {
controller = TextEditingController(
  text: text,
);
controller.addListener(_onTextChanged);
return Scrollbar(
  child: TextField(
    style: Styles.headlineRegular(color: ThemeColors.blackText),
    controller: controller,
    maxLines: widget.maxLines,
    minLines: widget.minLines,
    keyboardType: TextInputType.multiline,
    decoration: InputDecoration(
      fillColor: ThemeColors.veryLightGray,
      filled: true,
      hintStyle: Styles.headlineRegular(color: ThemeColors.darkGray),
      hintText: widget.hintText,
      enabledBorder: _buildBorder(ThemeColors.lightGray),
      focusedBorder: _buildBorder(ThemeColors.darkGray),
    ),
  ),
);}
  

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

1. Не могли бы вы показать нам свой код?

2. У меня такая же проблема, но я не смог с ней справиться. итак, я сказал, что не могу создать полосу прокрутки текстового поля для своего team designer.

Ответ №1:

Добавьте contentPadding: EdgeInsets.zero внутри IntputDecoration, это удалит это заполнение полосы прокрутки.
Затем вы можете обернуть все в виджет заполнения, не испортив полосу прокрутки.

 Widget _buildTextField() {
    controller = TextEditingController(
        text: text,
    );
    controller.addListener(_onTextChanged);

    return Scrollbar(
        child: TextField(
            style: Styles.headlineRegular(color: ThemeColors.blackText),
            controller: controller,
            maxLines: widget.maxLines,
            minLines: widget.minLines,
            keyboardType: TextInputType.multiline,
            decoration: InputDecoration(
                contentPadding: EdgeInsets.zero, // <----- ADD THIS LINE
                fillColor: ThemeColors.veryLightGray,
                filled: true,
                hintStyle: Styles.headlineRegular(color: ThemeColors.darkGray),
                hintText: widget.hintText,
                enabledBorder: _buildBorder(ThemeColors.lightGray),
                focusedBorder: _buildBorder(ThemeColors.darkGray),
            ),
        ),
    );
}
  

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

1. Это делает это, но только для того, чтобы что-то добавить: вы можете установить верхний, правый и левый отступы. Проблема заключается только в нижнем заполнении.