Flutter - focus na TextField powoduje znikanie ikony

0

Witam.
Kolega @cerrato mnie nakręcił na Fluttera to teraz będę was męczył postami w tej kategorii.

Mam problem z ikoną przy TextField, która znika na focus. Wcześniej miałem też problem z całym TextField, który też znikał i pokazywał się tylko kursor, ale po ostylowaniu widgeta problem zniknął. Wrzucam w załączniku fotki z apki.

Główny widget jest typu StatefulWidget.

                    child: TextField (
                      autofocus: false,
                      decoration: InputDecoration(
                        icon: Icon(LineIcons.envelope),
                        filled: true,
                        fillColor: Colors.white,
                        border: InputBorder.none,
                        hintText: 'Email',
                        contentPadding: const EdgeInsets.only(
                            left: 14.0, bottom: 8.0, top: 8.0),
                        enabledBorder: OutlineInputBorder(
                          borderSide: BorderSide(
                            color: Color(0xffced4da),
                            width: 0.7,
                          ),
                          borderRadius: BorderRadius.circular(15.0),
                        ),
                        focusedBorder: OutlineInputBorder(
                          borderSide: BorderSide(
                            color: Color(0xffced4da),
                            width: 0.7,
                          ),
                          borderRadius: BorderRadius.circular(15.0),
                        ),
                      ),
                      textInputAction: TextInputAction.next,
                    )
0

Proszę bardzo. Cały widget na prośbę ;)
Flutter 4programmers

0

Dalej Ci znikają te ikony? Na jakiej platformie i jaka wersja Fluttera?

0

Tak, platforma to Windows, a wersja Flutter: 1.7.8+hotfix.3

0

No to nie wiem. Mam 1.7.8+hotfix.4 i działa wszystko na Androidzie i na iOSie.

0

Myślałem, że hotfix.4 ma poprawkę do tego, ale niestety zachowuje się tak samo.

0

Mam! Doszedłem do tego. W głównym widgecie

    return MaterialApp(
      title: 'OptimoOffline',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
          fontFamily: 'Poppins_Light',
          primaryColor: Color(0xff71808f),
          primaryTextTheme:
              TextTheme(title: TextStyle(color: Color(0xff71808f)))),
      home: HomeScreen(title: 'OptimoOffline'),
      routes: {
        '/configuration': (ctx) => ConfigScreen(),
        '/order': (ctx) => AddEditOrderScreen(),
      },
    );

primaryColor był kolorem tła aplikacji. Najwyraźniej ikona przy focusie, ustawia kolor ikony na primaryColor stąd efekt końcowy jakby znikała :D

Dodatkowo lepiej wygląda jak skorzysta z prefixIcon: Icon(LineIcons.envelope),, wtedy ikona jest w środku TextField, a nie obok. W załączniku cudny efekt końcowy.

0

Teraz poczuję się jak prawdziwy informatyk i użyję najbardziej fachowego zdania, jakie da się wypowiedzieć: dziwne, u mnie działa ;)

A tak poważnie - odpaliłem to na emulatorze, klikam sobie na różne edity, przełączam się między nimi i żadne ikonki mi nie znikają.

Za to zauważyłem inne dziwne zachowanie. Po wciśnięciu "zapisz" pojawia się na dole zielony pasek z informacją. Po chwili on znika, ale kawałek wystaje, a potem sobie wraca na ekran. Tak samo się dzieje po kliknięciu w edity - jak już zostało zapisane, to każde kliknięcie w edita powoduje ponowne wysunięcie się zielonego paska.

2
AdamWox napisał(a):

primaryColor był kolorem tła aplikacji. Najwyraźniej ikona przy focusie, ustawia kolor ikony na primaryColor stąd efekt końcowy jakby znikała :D

Dlatego wrzuca się cały kod. Zwłaszcza, jak błądzimy. :P

0

@Michał Sikora: oj tam oj tam :-D

@cerrato ten pasek to snackbar.

0

Cześć,
zastanawiam się nad flutterem, i jestem ciekawy czy masz @AdamWox może jakieś nowe przemyślenia na temat tej technologii? :P

2

Cały czas te same. Lepsze to niż Java i xml 😎

PS.
Zrobiłem może dwa projekty we Flutterze (trzeci w drodze) i jestem kompletnie zadowolony z szybkości pisania. Prosta logika łidżetów, wiesz gdzie co jest, wiesz gdzie ci się pojawi, ponieważ hierarchii nie da się oszukać (albo spieprzyć). Teraz trochę kombinują z zapytaniami do API, sugerują aby korzystać z BLoC do zarządzania stanem co generuje masę kodu, ale idzie to jakoś "ulepszyć" żeby nie klepać pierdyliarda modeli i klas ;-) Co do zdań jakie napisałem na początku to oczywiście z naciskiem na Javę, XMLa jeszcze jestem w stanie przeboleć...

1 użytkowników online, w tym zalogowanych: 0, gości: 1