Мне нужно знать, как получить доступ к «this» при использовании функции onSelected в моей кнопке.
Используя последний флаттер, у меня есть следующий код:
FilterChip(
backgroundColor: _colorNavFilter,
padding: EdgeInsets.only(
top: 8, right: 4, bottom: 8, left: 12),
elevation: 2,
avatar: CircleAvatar(
backgroundColor: Colors.transparent,
child: _filter[index]['icon'],
),
label: Text(
_filter[index]['title'],
style: TextStyle(color: _colorNav),
),
onSelected: (bool value) {
setState(() {
if (postCategory == 'false') {
postCategory = _filter[index]['title'];
_colorNav = Colors.black; // This will end up coloring all buttons in the list - but I want only this specific one
_colorNavFilter = Colors.black;
} else {
postCategory = 'false';
_colorNav = _colorBlue;
_colorNavFilter = Colors.white;
}
});
},
);
Проблема в том, что все кнопки, имеющие эту переменную, будут окрашены в черный цвет. Я знаю, что могу определить отдельную переменную для каждой кнопки, а затем изменить ее с помощью индекса, но это выглядит довольно уродливо. Разве я не могу сделать что-то вроде «this.color = Colors.black»?