W moim przypadku potrzebuję skanowania kodów kreskowych i pobierania szczegółów produktu. Normalnie urządzeń skanera kodów kreskowych emitują enter key(keycode=13) event na końcu skanowania, ale w klawisz Enter Flutter nie jest taki sam jak Done, więc sposób, w jaki kod może wykryć klawisz Enter wsiadł w widżecie My TextFormfield?

22
Benjith Kizhisseri 25 luty 2019, 08:48

2 odpowiedzi

Najlepsza odpowiedź
TextFormField(
maxLines: null,
autovalidate: true,
   validator: (value){
             if(value.contains('\n')){
              doFun(value);
              }   
            }

)

Gdy użytkownik naciśnij enter key Nowa linia Utwórz w polu tekstowym. Sprawdzamy to.

maxLine:null - Aby ukryć Multiline

autovalidate:true - Aby automatycznie uruchomić zabawy weryfikatora

'\n' - Nowa linia ('s'-Whitespace, "Tab) .. itp.)

1
Benjith Kizhisseri 27 luty 2019, 05:34

Jeśli używasz TextField, musisz dodać onSubmitted w polu tekstowym, aby wykryć, gdy użytkownik naciśnij klawisz Enter . W przypadku mojego przypadku zmieniłem Done w klawiaturze do TextInputAction.Search. Działa również również dla TextInputAction.Done. Oto przykładowy kod

           TextField(
            onSubmitted: (value){
              //value is entered text after ENTER press
              //you can also call any function here or make setState() to assign value to other variable
            },
            textInputAction: TextInputAction.search,
          )
5
Al Walid Ashik 18 grudzień 2019, 05:24