I`m using Widget
class FilterIconButton extends StatefulWidget {
final CloudListWidgetData cloudListWidgetData;
final cloud.CloudListDetails cloudListDetails;
final String filterId;
FilterIconButton({
@required this.cloudListWidgetData,
@required this.cloudListDetails,
Key key,
}) : filterId = Uuid().v4(),
super(key: key);
@override
State<FilterIconButton> createState() => _FilterIconButtonState();
}
class _FilterIconButtonState extends State<FilterIconButton> {
@override
void didChangeDependencies() {
super.didChangeDependencies();
final isFiltered = context.read<FilterIconCubit>().state.filterState;
if (isFiltered) {
BlocProvider.of<FilterDataCubit>(context).clearFilterList();
context.read<FilterIconCubit>().showFilterOnIcon();
} else {
context.read<FilterIconCubit>().showFilterOffIcon();
}
}
@override
Widget build(BuildContext context) {
return BlocBuilder<FilterIconCubit, FilterIconState>(
builder: (context, iconState) {
final isFiltered = iconState.filterState;
return isFiltered
? IconButton(
icon: Icon(
Icons.filter_alt_off_outlined,
color: Properties.appColors.BRAND_PRIMARY,
),
onPressed: () {
BlocProvider.of<FilterDataCubit>(context).clearFilterList();
context.read<FilterIconCubit>().showFilterOffIcon();
},
)
: IconButton(
icon: Icon(
Icons.filter_alt_outlined,
color: Properties.appColors.BRAND_PRIMARY,
),
onPressed: () => _showFilterListDialog(context),
);
},
);
}
void _showFilterListDialog(BuildContext context) {
showDialog(
context: context,
builder: (context) => FilterListDialogWidget(
cloudListWidgetData: widget.cloudListWidgetData,
cloudListDetails: widget.cloudListDetails,
),
).then((value) {
if (value == true) {
context.read<FilterIconCubit>().showFilterOnIcon();
} else {
context.read<FilterIconCubit>().showFilterOffIcon();
}
});
}
}
sometime few times on one screen or tab. How to notify if I changed tab so button icon will hcnage back to Icons.filter_alt_outlined
.
It’s also a question of if BlocProvider(create: (context) => FilterIconCubit()) in main.dart file is correct or should I use in which the object is called?
Control the sate for a given FilterButton so that after changing the view and returning to the previous button, its appearance returns to the default state.