Я бы хотел, чтобы мои кнопки-переключатели были размещены в таблице, а не в виде одной строки. Количество кнопок переключения не установлено c - то есть при инициализации я загружаю ресурс, содержащий список всех текстов, которые должны стать кнопками переключения.
Посмотрел несколько подходов, каждый из которых имеет его проблемы:
Создайте список ToggleButtons и список списков bools для хранения соответствующего выбранного состояния в виде структуры данных, чтобы разделить кнопки переключения на несколько строк. Проблема такого подхода заключается в реализации метода onPressed - как получить ссылку на соответствующий элемент в списке списков bools? Или другими словами - как получить ссылку на объект ToggleButtons из метода onPressed?
Использовать свойство ключа для передачи индекса текущего ToggleButtons. Он не предназначен для этой цели, поэтому это плохая практика, и опять же, похоже, нет простого способа получить доступ к свойству ключа из метода onPressed.
Расширение ToggleButtons класс, и специально переопределить его метод сборки. Это считается анти-паттерном во Флаттере в целом. В частности, в этом подходе, поскольку мы хотим, чтобы все функциональные возможности оставались неизменными, и изменяли только генерацию внутреннего виджета Row -> Table в методе build, похоже, что нам придется дублировать весь код этого метода, который является плохая идея, так как это может затормозить ситуацию, поскольку она изменится в будущих версиях этого виджета
Создать таблицу альтернативных виджетов / переключателей в качестве альтернативы, которая должна работать легко, но я хочу, чтобы внешний вид и ощущение кнопок, а не флажков или переключателей:)
Я, должно быть, упускаю что-то простое!