Flutter - focus na TextField powoduje znikanie ikony

Odpowiedz Nowy wątek
2019-07-25 14:47
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,
                    )
Jak dobrze, że ja się fluttera dopoero uczę, więc nie mam moralnego obowiązku Ci pomagać ;) - cerrato 2019-07-25 15:40
Mimo wszystko postaram się rzucić okiem pod wieczór, może coś mi przyjdzie do głowy :D - cerrato 2019-07-25 15:41
Szukałem w google, że coś znika na focus, ale chyba tylko ja mam taki przypadek, albo coś źle robie :D - AdamWox 2019-07-25 15:42
A czy możesz cały kod wrzucić na jakiś serwer? Bo muszę krem jest w innym miejscu, niż kawałek, który wkleiłeś. Odpalę to u siebie i zobaczę, co się będzie działo - cerrato 2019-07-25 15:55

Pozostało 580 znaków

2019-07-25 15:58
0

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

Pokaż pozostałe 22 komentarze
Miałem kiedyś takie jazdy, że jak podłączyłem telefon i miałem jednocześnie włączone AS i IntelliJ, to tylko jeden z tych programów go widział i nie dało się z drugiego IDE odpalić. A z linii komend możesz zrobić flutter run? I co pokazują flutter devices i adb devices (możliwe, że nie masz adb w PATH)? - Michał Sikora 2019-07-26 11:51
To jest na 99% wina AS. Po pierwsze: czasami działa, czasami nie. Jakbym nie miał w PATH to by chyba wcale nie poszło. Po drugie - po zainstalowaniu VS od razy wykrywa emulatory, odpala poprawnie, wrzuca na nie apki. Ale za to w VS nie działa "hot reload"... grr... - cerrato 2019-07-26 11:57
W tej chwili odpaliłem ponownie AS i nagle mi się pojawiły emulowane telefony. Magia Panowie, magia... - cerrato 2019-07-26 12:08
Chodziło mi, że jak wpiszesz adb devices, to może pójść błąd, bo nie będziesz miał adb w ścieżce. adb nie jest tam potrzebny do typowego korzystania z emulatora. - Michał Sikora 2019-07-26 12:21
Jak znowu problem się pojawi to sprawdzę, bo jak pisałem przed chwilą - na razie foch ustąpił i AS działa zgodnie z oczekiwaniami. - cerrato 2019-07-26 12:24

Pozostało 580 znaków

2019-07-26 11:42
0

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

Pozostało 580 znaków

2019-07-26 11:43
0

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

Chodziło mi Android / iOS. ;) - Michał Sikora 2019-07-26 11:44
No właśnie nie byłem pewny. Tylko Android. Nie mam potrzeby pisania tego na iOS, ponieważ robię ten projekt pod konkretnego klienta, który ma urządzenia tylko z Androidem. - AdamWox 2019-07-26 11:46

Pozostało 580 znaków

2019-07-26 11:46
0

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

Pozostało 580 znaków

2019-07-26 11:59
0

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

Pozostało 580 znaków

2019-07-26 12:11
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.

wygląda pro :) - cerrato 2019-07-26 12:23

Pozostało 580 znaków

2019-07-26 12:20
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.


That game of life is hard to play
I'm gonna lose it anyway
The losing card I'll someday lay
So this is all I have to say
edytowany 1x, ostatnio: cerrato, 2019-07-26 12:22

Pozostało 580 znaków

2019-07-26 12:22
1
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

edytowany 1x, ostatnio: Michał Sikora, 2019-07-26 12:22

Pozostało 580 znaków

2019-07-26 12:27
0

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

@cerrato ten pasek to snackbar.

nieważne, jak go nazwiesz :P Moim zdaniem nie powinien się pojawiać, chować i ponownie pojawiać i chować, a potem pojawić i zniknąć (ale i tak nie do końca). Rozumiem, że pokazuje informację o wykonaniu czynności, ale powinna ona być widoczna raz i zniknąć, a nie wyglądać co chwila jak emerytka rozglądająca się na boki przed przejściem dla pieszych :D - cerrato 2019-07-26 12:30
Aaaa to nie zrozumiałem. U mnie się pojawia i chowa i nic więcej - AdamWox 2019-07-26 12:31
Dwa dni i mam wymarzony intefejs, ostylowane wszystko tak samo jak aplikacja w Angular Online. https://youtu.be/UEyw6Ui6MKI Ten Flutter to naprawdę super sprawa. To jest pierwszy raz jak jestem w aplikacji mobilnej tak daleko. Poprzednie podejścia kończyły się porażką... - AdamWox 2019-07-26 12:43
No to mój pierwszy kontakt z mobilkami, ale ogólnie to jak się przestawisz na odpowiedni tok/sposób myślenia, to potem idzie w miarę OK :) - cerrato 2019-07-26 13:20

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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