Flutter - лучший подход для создания TabledToggledButtons? - PullRequest
0 голосов
/ 09 марта 2020

Я бы хотел, чтобы мои кнопки-переключатели были размещены в таблице, а не в виде одной строки. Количество кнопок переключения не установлено c - то есть при инициализации я загружаю ресурс, содержащий список всех текстов, которые должны стать кнопками переключения.

Посмотрел несколько подходов, каждый из которых имеет его проблемы:

  1. Создайте список ToggleButtons и список списков bools для хранения соответствующего выбранного состояния в виде структуры данных, чтобы разделить кнопки переключения на несколько строк. Проблема такого подхода заключается в реализации метода onPressed - как получить ссылку на соответствующий элемент в списке списков bools? Или другими словами - как получить ссылку на объект ToggleButtons из метода onPressed?

  2. Использовать свойство ключа для передачи индекса текущего ToggleButtons. Он не предназначен для этой цели, поэтому это плохая практика, и опять же, похоже, нет простого способа получить доступ к свойству ключа из метода onPressed.

  3. Расширение ToggleButtons класс, и специально переопределить его метод сборки. Это считается анти-паттерном во Флаттере в целом. В частности, в этом подходе, поскольку мы хотим, чтобы все функциональные возможности оставались неизменными, и изменяли только генерацию внутреннего виджета Row -> Table в методе build, похоже, что нам придется дублировать весь код этого метода, который является плохая идея, так как это может затормозить ситуацию, поскольку она изменится в будущих версиях этого виджета

  4. Создать таблицу альтернативных виджетов / переключателей в качестве альтернативы, которая должна работать легко, но я хочу, чтобы внешний вид и ощущение кнопок, а не флажков или переключателей:)

Я, должно быть, упускаю что-то простое!

1 Ответ

0 голосов
/ 09 марта 2020

После публикации у меня появилась новая идея :) Таблица FlatButtons! Возможно будет возможно добиться аналогичного пользовательского интерфейса для ToggleButtons. Попробую это немного. Я все еще хотел бы услышать другие предложения относительно ToggleButtons.

...