No seu código seria algo nesse sentido:
Para seu widget ReportScreen:
crie um método setState para atualizar a tela com o valor do filtro
void _mudarEstado(String filtroEstado) {
if (filtroEstado != "Selecione") {
setState(() {
aEstado = filtroEstado;
});
}
}
E quando navegar para a tela FilterScreen, passe o método como parâmetro para que a tela FilterScreen possa atualizar a tela ReportScreen.
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) {
return FilterScreen(
onIncrement: _mudarEstado,
);
},
),
);
},
Para seu widget FilterScreen:
List<String> Listaestado = ['Selecione', 'estado1', 'estado2', 'estado3'];
class FilterScreen extends StatefulWidget {
const FilterScreen({super.key, required this.onIncrement});
final Function onIncrement;
@override
State<FilterScreen> createState() => _FilterScreenState();
}
e para navegar para a pagina ReportScreen atualize a tela chamando a função de setState recebida como parâmetro, antes de chamar o Navigator.pop:
OutlinedButton(
onPressed: () {
widget.onIncrement(dropdownValue);
Navigator.pop(context, dropdownValue);
},
child: const Text('Filtrar'),
),