Мобильное приложение Flutter Backspace удалить 2 символа вместо 1

У меня есть страница, которая будет отображать модальный нижний лист, когда я нажимаю кнопку. В модальном нижнем листе у него есть поле Pinput, в которое я могу вводить значения. Однако, когда я нажимаю клавишу Backspace, он удаляет 2 символа вместо 1. Кто-нибудь знает, в чем проблема, поскольку консоль ничего не показывает. Ниже приведены коды для модального нижнего листа.

_showCouponDetails(String coupon, bool couponStatus){
    int shopPinCode;
    int pinCode;
    final FocusNode _pinPutFocusNode = FocusNode();
    final TextEditingController _pinPutController = TextEditingController();

    return showModalBottomSheet(
        isScrollControlled: true,
        context: context,
        builder:(BuildContext context) =>
          GestureDetector(
            onTap: () {
              FocusScope.of(context).requestFocus(FocusNode());
            },
            child: Container(
                width: screenWidth,
                color: Colors.white,
                child: Column(
                  mainAxisSize: MainAxisSize.max,
                  mainAxisAlignment: MainAxisAlignment.start,
                  children: [
                    SizedBox(height: 24),
                    Padding(
                        padding: EdgeInsets.symmetric(horizontal: 10),
                        child: Text(coupon,
                                style: TextStyle(
                                  fontSize: 25,
                                  fontWeight: FontWeight.bold
                                )),
                        ),

                    couponStatus? Text(''):Image.asset('images/Redeemed.png', width: 100, height: 100),
                    Center(child:
                      Text('Expires on 31/12/2020')),
                    Container(
                      height: 100,
                      width: screenWidth*0.8,
                      decoration: BoxDecoration(
                        borderRadius: BorderRadius.circular(15),
                        color: Colors.grey[200]
                      ),
                      child: Padding(
                        padding: EdgeInsets.all(10),
                        child: Center(
                          child: Column(
                            children: [
                              Text('Please ask the workshop to enter pin.'),
                              SizedBox(height: 10),
                              PinPut(
                                fieldsCount: 5,
                                focusNode: _pinPutFocusNode,
                                controller: _pinPutController,
                                eachFieldHeight: 30,
                              eachFieldWidth: 30,
                              selectedFieldDecoration: BoxDecoration(
                                border: Border.all(color: Colors.purple),
                                borderRadius: BorderRadius.circular(15)
                              ),
                              followingFieldDecoration: BoxDecoration(
                                  border: Border.all(color: Colors.purple),
                                  borderRadius: BorderRadius.circular(15),
                              ),
                              submittedFieldDecoration: BoxDecoration(
                                  border: Border.all(color: Colors.purple),
                                  borderRadius: BorderRadius.circular(15),
                              ),
                              onChanged: (_pinPutController){
                                  if (_pinPutController.isNotEmpty)
                                    pinCode = int.parse(_pinPutController);
                                    print (pinCode);
                                  },
                                ),
                            ]
                          )
                        ),
                      ),
                    ),
                    Spacer(),
                    Padding(
                      padding: EdgeInsets.all(10),
                      child: Row(
                        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                        children: [
                          InkWell(
                            onTap: () {
                              
                            },
                            child: Container(
                              height: screenHeight*0.05,
                              width: screenWidth *0.4,
                              decoration: BoxDecoration(
                                  borderRadius: BorderRadius.circular(15),
                                  color: kPrimaryColor
                              ),
                              child: Center(child: Text('Redeem', style: TextStyle(fontWeight: FontWeight.bold,color: Colors.white, fontSize: 15))),
                            ),
                          ),
                          InkWell(
                            onTap: (){
                              Navigator.pop(context);
                            },
                            child: Container(
                              height: screenHeight*0.05,
                              width: screenWidth *0.4,
                              decoration: BoxDecoration(
                                borderRadius: BorderRadius.circular(15),
                                border: Border.all(color: Colors.black),
                                color: Colors.white
                              ),
                              child: Center(child: Text('Cancel', style: TextStyle(fontWeight: FontWeight.bold, fontSize: 15))),
                            ),
                          ),
                        ],
                      ),
                    )
                  ],
                ),
              ),
          ),
      );
  }

Обновления: Изображение включено. На картинке я набрал 1,2 и 3. Всякий раз, когда я нажимаю клавишу Backspace, она удаляет 2 и 3 (рисунок 2). На рисунке 3 консоль выводит число дважды.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
0
708
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы говорите о добавлении числа и обратном отступе внутри числового поля? Ну, это работает нормально во время моей компиляции. Если нет, не могли бы вы добавить скриншот проблемы.

Здравствуйте, да, я говорю о номере внутри числового поля. Добавил 2 фото проблемы.

Roy 20.12.2020 14:52

Привет, Рой, во время моей компиляции приложение работает отлично. Если проблема все еще сохраняется. Пожалуйста, проверьте, если: - 1. Обновлена ​​​​до последней версии библиотека выводов (я использовал последнюю) или любую другую библиотеку. 2. Попробуйте запустить приложение на физическом устройстве (это может сработать)

Harshal Bhope 21.12.2020 14:18

Спасибо. Я пытался загрузить на устройство, но все равно. Я также обновился до последней библиотеки, но все еще сталкиваюсь с той же проблемой.

Roy 22.12.2020 15:03

В моем коде. Если я удерживаю кнопку возврата, она удаляет только один символ. Я хочу сделать так, чтобы когда мы удерживали клавишу возврата, все символы начинали удаляться, но я могу удалить только один символ. как я могу этого добиться?

Dhananjay Gavali 27.03.2021 19:45
Ответ принят как подходящий

Я исправил эту проблему, изменив канал флаттера. Я использовал бета-версию канала флаттера, и, по-видимому, этот пробел — ошибка. После переключения на стабильный канал флаттера все было нормально.

Чтобы проверить свой флаттер-канал, введите в терминале следующее: флаттер --версия

Чтобы изменить канал флаттера, введите в терминале следующее: флаттер мастер канала

Другие вопросы по теме