Например, с помощью GetX В контроллере: enum Mode {newOrder, newOffer, voiceSearch, checkStudents, favorites} final Rx<Mode> currentMode = Rx(Mode.newOrder); В виджете: controller = Get.find<MyController>(); По клику на значке меняешь controller.currentMode.value = Mode.newOrder (на каждой кнопке свой mode) На Fab слушаешь Obx ( () => FloatingActionButton(icon: Builder() { switch (controller.currentMode.value) { case Mode.newOrder: return Icons.bag; case Mode.voiceCall: return Icons.mic; ... } } )
спасибо, попробую, сейчас)
Смысл в том, чтобы завести переменную "текущий режим" вынести её в контроллер и слушать на кнопке её изменения
Value Notifier<int?> _selectedIcn Он получит индекс, кнопки которую нажали В строке Row(children:[ List.generate(arrayWithIcn. length,(i))=>Gestruevgetector( child: Icon(arrayWithIcn[i]), OnTap:(){}))] FloatingActionButton( child Icon(_selectedIcn.val==null? DEFAULTICN: arrayWithIcn[_selectedIcn.val!],)
так, это по интереснее а там в Value Notifier<int?> _selectedIcn где обьявлять можно ?
child: Icon(arrayWithIcn[i]), и не понял эту часть, иконки самим обьявляем ?
В теле класса , не в методе build Условно можно так : late ...... Теперь инициалищируем В методе inistate _название = ....; В dispose (){ _название . Dispose ()}
Я просто предположил, что иконки можно в [] поместить)
а да, не уходи далеко пж, сейчас сделаю дам обратную связь)))
Можно хоть setState ((){}) Я думаю это вам проще будет, Сейчас это для вас не принципиально)
в конструктор передавать либо любой State Management использовать
Я думаю , 1е, судя по вопросу который человек задаёт.... 🙃🙂
сейчас я пытаюсь как раз таки сделать ValueNotifier<int?> _selectionId;
Я бы , Вам посоветовал все же просто триггер для build метода =>setState
для какого именно где иконки лежать ?
Я предложил вам получать индекс в переменную, и устанавливать значение не через уведомитель значений, а через простой метод ))
вопрос, не совсем у меня выходить
Покажите код
Обсуждают сегодня