Программирование : Dart & Flutter по-русски
Nikita
там есть new TextField
Nikita
вот туда передаёшь
Nikita
Ну а дальше смотри какие ошибки вылезут
Maksim Zdanchuk
видимо, не выйдет
Nikita
хотя бы var onTap напиши для начала
Nikita
а по хорошему вот какой тип у неё
Nikita
если без nullsafety сидишь, то вопросительный знак не нужен
Maksim Zdanchuk
гулалось на {}
Maksim Zdanchuk
[
{
"type": "code",
"text": "void Function() onTap;"
}
]
Maksim Zdanchuk
вот например
Nikita
да, {} это в конструкторе надо
Nikita
теперь в конструктор допиши в конце
Nikita
и в new Textfield(onTap:this.onTap
DVS (Read The F.ng Manual) Studio (NoHello)
и без new тогда уж ))
Nikita
Кстати пользуясь случаем спрашиваю
Nikita
Для чего new вообще в дарте?
DVS (Read The F.ng Manual) Studio (NoHello)
рудимент
Andreu
тогда уж еще и onTap: onTap?.call
Nikita
у него не нулл сафети
Maksim Zdanchuk
а это из newText.. убирать?
DVS (Read The F.ng Manual) Studio (NoHello)
текстфилд это схавает. так что даже если null - норм
Andreu
и шо? в конструкторе не задаст onTap и будет null
Nikita
это наверное нужно чтобы вызывалось постоянно
Nikita
может тут подскажут, как грамотно функции сложить
Nikita
чтобы одна за одной вызывались
Maksim Zdanchuk
[
"еще вопрос: тут выше есть класс ",
{
"type": "code",
"text": "AutoCompleteTextField"
},
" где все свойства дублируются. мне там тоже все это проделать?"
]
Nikita
можно onTap(){updateOverlay(currentText);this.onTap;} наверное
Maksim Zdanchuk
так что по поводу класса выше?
Nikita
Вот это не забудь удалить теперь
Nikita
Покажи класс второй
Maksim Zdanchuk
просто тот класс, что мы меняем, наследственный от верхнего
Maksim Zdanchuk
[
{
"type": "code",
"text": "class AutoCompleteTextFieldState extends State"
}
]
Nikita
не от верхнего, а от его стейта
Nikita
если у них все свойства повторяются, то и ты повтори)
Maksim Zdanchuk
сейчас запускаю, посмотрим
Yevhen Ivanov
[
"Всем привет! Как выставить items ",
{
"type": "code",
"text": "CupertinoPicker.builder"
},
" по высоте?"
]
Yevhen Ivanov
надо, чтобы по центру было
Maksim Zdanchuk
ошибок не выдает, но, к сожалению, не работает( Но огромное спасибо за попытку и время!)
Nikita
в конструктор то передаётся?
Maksim Zdanchuk
везде, где объявляются или передаются свойства я вставил onTap
Maksim Zdanchuk
но отрабатывает некорректно
Nikita
попробуй его в классе-наследнике стейта объявить required
Nikita
required this.onTap
Nikita
увидишь, где забыл передать может
Nikita
в createState скорее всего не передал
Nikita
ну тебе подсветит, как required поставишь
Valentin Nechay
Здраствуйте, подскажите кто с такой ошибкой сталкивался. Flutter 1.22.6 stable, dart 2.10.5
Maksim Zdanchuk
тут ведь?
Maksim Zdanchuk
вот поближе
Nikita
Нет, в другом классе
Valentin Nechay
Можно просто игнорировать?
Ivan
да, обещают уже давно поправить это
Valentin Nechay
Понял, спасибо!
Nikita
Только правильно написать
Nikita
И подстветит места, где передать забыл
Maksim Zdanchuk
подсветить красным должно?
Maksim Zdanchuk
если да, то не подсвечивает
Nikita
На старой версии Дарта вроде не красным
Nikita
Забыл, что не нуллсафети
Nikita
Просто в первом классе найди метод _createState
Nikita
В нём создаётся второй класс
Nikita
Вот там ты и забыл передать скорее всего
Nikita
Хорошо, а как конкретно не работает?
Maksim Zdanchuk
[
"в обычном текстФилде у меня есть камера для считки баркодов. Если нажать на нее и выйти, то клавиатура для ввода баркода вручную не вылазила. onTap это фиксил.\n",
{
"type": "code",
"text": "onTap: () {\n if (_isCameraTapped) {\n _focusNode.unfocus();\n }\n _isCameraTapped = false;\n},"
},
"\nсейчас же он не отрабатывает"
]
Nikita
Точку останова поставь
Nikita
Заходит ли в функцию
Nikita
В классе можешь принтов покидать для дебага. К примеру в ТЕЛЕ конструктора написать принтов, аля print(onTap)
Nikita
Будет видно, докуда доходит твоя функция
Maksim Zdanchuk
не входит в откладке
Nikita
[
{
"type": "link",
"text": "this.onTap.call"
},
"()"
]
Maksim Zdanchuk
не помогло (
Nikita
напиши в теле конструкторов обоих классов
Nikita
посмотри, что выведет
Maksim Zdanchuk
что-то ошибки выдает
Maksim Zdanchuk
не запускается программа
Nikita
покажи как написал
Nikita
тело конструктора после { идёт
Maksim Zdanchuk
не тут надо было?
Maksim Zdanchuk
так тоже пробовал
Maksim Zdanchuk
так это и есть после
Nikita
Class({this.a,this.b}) { print(onTap); }
Maksim Zdanchuk
flutter: Closure: () => Null
Maksim Zdanchuk
по-моему заработало
Maksim Zdanchuk
перепроверю
Nikita
closure()=>null по идее значит, что функция есть. Значит до принта она доходит точно
Nikita
Значит должно работать вообще говоря
Maksim Zdanchuk
видимо, надо было не с горячего старта запускать
Maksim Zdanchuk
а полностью ребилдить приложение
Maksim Zdanchuk
последний раз проверю
Nikita
hot restart тоже пойдёт
Nikita
а ты наверное hot reload нажимал
Maksim Zdanchuk
зеленый значок сточкой
Nikita
Значит да, ребилдить надо было
Maksim Zdanchuk
так, оно заработало, за что ОГРОМНОЕ СПАСИБО. но
Maksim Zdanchuk
[
"flutter: ==¦ EXCEPTION CAUGHT BY GESTURE ¦===================================================================\nflutter: The following NoSuchMethodError was thrown while handling a gesture:\nflutter: The method 'call' was called on null.\nflutter: Receiver: null\nflutter: Tried calling: call()\nflutter: \nflutter: When the exception was thrown, this was the stack:\nflutter: #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5)\nflutter: #1 ",
{
"type": "link",
"text": "AttrInputState.build"
},
". (package:wda/src/ui/work/general/AttrInputField.dart:153:31)\nflutter: #2 AutoCompleteTextFieldState.updateOverlay.... (package:autocomplete_textfield/autocomplete_textfield.dart:337:54)\nflutter: #3 State.setState (package:flutter/src/widgets/framework.dart:1244:30)\nflutter: #4 AutoCompleteTextFieldState.updateOverlay... (package:autocomplete_textfield/autocomplete_textfield.dart:332:37)\nflutter: #5 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:993:19)\nflutter: #6 _InkResponseState.build. (package:flutter/src/material/ink_well.dart:1111:38)\nflutter: #7 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:183:24)\nflutter: #8 TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:598:11)\nflutter: #9 BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:287:5)\nflutter: #10 BaseTapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:222:7)\nflutter: #11 PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:476:9)\nflutter: #12 PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:77:12)\nflutter: #13 PointerRouter._dispatchEventToRoutes. (package:flutter/src/gestures/pointer_router.dart:122:9)\nflutter: #14 _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:377:8)\nflutter: #15 PointerRouter._dispatchEventToRoutes (package:flutter/src/gestures/pointer_router.dart:120:18)\nflutter: #16 PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:106:7)\nflutter: #17 GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:358:19)\nflutter: #18 GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:338:22)\nflutter: #19 RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:267:11)\nflutter: #20 GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:295:7)\nflutter: #21 GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:240:7)\nflutter: #22 GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:213:7)\nflutter: #26 _invoke1 (dart:ui/hooks.dart:265:10)\nflutter: #27 _dispatchPointerDataPacket (dart:ui/hooks.dart:174:5)\nflutter: (elided 3 frames from dart:async)\nflutter: \nflutter: Handler: \"onTap\"\nflutter: Recognizer:\nflutter: TapGestureRecognizer#01de3\nflutter: ===================================================================================================="
]
Maksim Zdanchuk
это из-за call() ?
Maksim Zdanchuk
я представляю как будет непросто с остальными свойствами))
Nikita
да всё то же самое
Nikita
это самое сложное было, т.к. функция
Nikita
остальные не нужно call()
Maksim Zdanchuk
другие же типы
Nikita
просто добавляешь в конструктор
Maksim Zdanchuk
+ сложение функций
Nikita
у тебя остальные типы не функции
Nikita
там color например
Nikita
их просто добавть нужно во все конструкторы
Maksim Zdanchuk
с валидатором тоже самое?
Maksim Zdanchuk
не помогло, кстати
Nikita
вообще должно помочь, попробуй ребилднуть
Nikita
[
"или if(onTap!=null) ",
{
"type": "link",
"text": "onTap.call"
},
"()"
]
Nikita
но это то же самое так то
Maksim Zdanchuk
я тут еще ниже нашел такое же в сет стейт. Так же сделал
Maksim Zdanchuk
так, эта ошибка не из-за onTap вылазит
Maksim Zdanchuk
так что дело не в нем
Nikita
Из за него как раз
Nikita
на call же ругается
Maksim Zdanchuk
это происходит, когда я из выпадающего списка выбираю какой-нибудь вариант
Maksim Zdanchuk
сразу начинает ругаться
Maksim Zdanchuk
я даже закоментил onTap в виджете
Maksim Zdanchuk
я попробую убрать кол и перебилдить
Maksim Zdanchuk
может и без него сработает
Ruslan Prokofev
Ребят есть у кого опыт использование в бою флатер в крупном проекте? (сокеты,grpc,бд,куча логики)
Maksim Zdanchuk
без call не работает, но все равно ругается
Maksim Zdanchuk
может просто пакет кривой
Maksim Zdanchuk
и было бы логичнее сразу искать нормальный
Nikita
вряд ли, ты оба call убрал?
Nikita
ну тогда просто поиск по файлу метода call()
Nikita
потому что ругается именно на call
Nikita
но поправить легко
Nikita
[
{
"type": "link",
"text": "a.call"
},
"() => a?.call();"
]
Nikita
всё что нужно сделать
Maksim Zdanchuk
в файле больше нет call()
Nikita
он ошибку вызывает
Maksim Zdanchuk
т.е.? не понял
Maksim Zdanchuk
убрать его?
Nikita
Ну закомменти проверь
Maksim Zdanchuk
updateOverlay
Nikita
что-то работать не будет
Maksim Zdanchuk
и верну call
Nikita
но хоть узнаем, что в нём проблема
Nikita
ну call да, можешь вернуть
Nikita
а вообще покажи код updateOverlay
Maksim Zdanchuk
[
{
"type": "code",
"text": "void updateOverlay([String query]) {\n if (listSuggestionsEntry == null) {\n final Size textFieldSize = (context.findRenderObject() as RenderBox).size;\n final width = textFieldSize.width;\n final height = textFieldSize.height;\n listSuggestionsEntry = new OverlayEntry(builder: (context) {\n return new Positioned(\n width: width,\n child: CompositedTransformFollower(\n link: _layerLink,\n showWhenUnlinked: false,\n offset: Offset(0.0, height),\n child: new SizedBox(\n width: width,\n child: new Card(\n child: new Column(\n children: filteredSuggestions.map((suggestion) {\n return new Row(children: [\n new Expanded(\n child: new InkWell(\n child: itemBuilder(context, suggestion),\n onTap: () {\n setState(() {\n if (submitOnSuggestionTap) {\n String newText = suggestion.toString();\n textField.controller.text = newText;\n textField.focusNode.unfocus();\n itemSubmitted(suggestion);\n if (clearOnSubmit) {\n clear();\n }\n } else {\n String newText = suggestion.toString();\n textField.controller.text = newText;\n textChanged(newText);\n }\n });\n }))\n ]);\n }).toList(),\n )))));\n });\n Overlay."
},
{
"type": "italic",
"text": "of"
},
{
"type": "code",
"text": "(context).insert(listSuggestionsEntry);\n }\n\n filteredSuggestions = getSuggestions(\n suggestions, itemSorter, itemFilter, suggestionsAmount, query);\n\n listSuggestionsEntry.markNeedsBuild();\n}"
}
]
Maksim Zdanchuk
лучше скрин
Maksim Zdanchuk
и вот снизу кусочек
Maksim Zdanchuk
даже с закоменченным updateOverlay ошибка
Sergey Hottabych
Кому-то удавалось сделать перехват кода из SMS с автоматической вставкой в TextField? Нужно и под Андроид, и под iOS.
Dima Kotlyarov
sms autofill
Dima Kotlyarov
как то так
Sergey Hottabych
Вот его тоже смотрю, а там какой-то убогий PinFieldAutoFill
Sergey Hottabych
Его обязательно юзать? У нас просто другое поле по дизайну.
Sergey Hottabych
У нас в дизайне вот такие окошки
Sergey Hottabych
В sms_autofill вот такая фигня
admin
Привет, кто может подсказать: как реализовать систему NetworkImage, где ссылка на картинку берётся автоматически с Firebase Storage с первого по последний элемент. И создаются Cards + NetworkImage (FirebaseStorage)? Спасибо заранее
Дима
[
{
"type": "link",
"text": "https://pub.dev/packages/sms_otp_auto_verify"
}
]
Sergey Hottabych
О, пасиб
Sergey Hottabych
Ну и там и там нужен специальный формат SMS
Sergey Hottabych
[
{
"type": "pre",
"text": "<#> ExampleApp: Your code is 123456\nFA+9qCX9VSu",
"language": ""
}
]
Sergey Hottabych
А где взять хэш-код?
Sergey Hottabych
Который в конце
|