cardFiltroDropDown method
Widget
cardFiltroDropDown({
- required BuildContext context,
- required FiltrosWidgetModel filtrosDados,
- required FiltroController controller,
- required int index,
Implementation
Widget cardFiltroDropDown({
required BuildContext context,
required FiltrosWidgetModel filtrosDados,
required FiltroController controller,
required int index,
}) {
return Card(
child: ListTile(
title: tituloCards(titulo: filtrosDados.titulo.toUpperCase(), context: context),
subtitle: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Visibility(
visible: filtrosDados.subtitulo.isNotEmpty,
child: Container(
margin: const EdgeInsets.only(top: 5, bottom: 5),
alignment: Alignment.topLeft,
child: Text(
filtrosDados.subtitulo,
style: const TextStyle(
fontSize: 11.0,
),
),
),
),
Padding(
padding: const EdgeInsets.only(top: 10, bottom: 10),
child: FutureBuilder(
future:
controller.listaFiltrosCarregados.indexWhere((element) => element.indexFiltros == index) == -1 ?
controller.funcaoBuscarDadosDeCadaFiltro(
valor: controller.listaFiltrosParaConstruirTela[index].filtrosWidgetModel,
isBuscarDropDown: true,
index: index,
).then(
(value) {
controller.listaFiltrosCarregados[controller.listaFiltrosCarregados.indexWhere((element) => element.indexFiltros == index)].valorSelecionadoParaDropDown = controller.listaFiltrosCarregados[controller.listaFiltrosCarregados.indexWhere((element) => element.indexFiltros == index)].listaFiltros.first;
},
) : null,
builder: (context, snapshot) {
if (controller.listaFiltrosCarregados.where((element) => element.indexFiltros == index).toList().isNotEmpty) {
return DropdownButton<FiltrosModel>(
value: controller.listaFiltrosCarregados[controller.listaFiltrosCarregados.indexWhere((element) => element.indexFiltros == index)].valorSelecionadoParaDropDown,
isExpanded: true,
isDense: true,
onChanged: (value) {
controller.listaFiltrosCarregados[controller.listaFiltrosCarregados.indexWhere((element) => element.indexFiltros == index)].valorSelecionadoParaDropDown = value;
controller.adicionarItensDropDown(index: index, valorSelecionado: value!);
},
hint: Text(controller.listaFiltrosCarregados[controller.listaFiltrosCarregados.indexWhere((element) => element.indexFiltros == index)].valorSelecionadoParaDropDown!.titulo),
items: controller.listaFiltrosCarregados[controller.listaFiltrosCarregados.indexWhere((element) => element.indexFiltros == index)].listaFiltros.map((item) {
return DropdownMenuItem<FiltrosModel>(
value: item,
child: Text(
item.titulo,
),
);
}).toList(),
);
} else {
return InkWell(
child: Container(
height: 25,
width: MediaQuery.sizeOf(context).width,
decoration: const BoxDecoration(border: Border(bottom: BorderSide(width: 0.25))),
child: const Row(
children: [
Expanded(
child: Text("NENHUM"),
),
Icon(Icons.arrow_drop_down_sharp),
],
),
),
onTap: () async {
await controller.funcaoBuscarDadosDeCadaFiltro(
valor: controller.listaFiltrosParaConstruirTela[index].filtrosWidgetModel,
isBuscarDropDown: true,
index: index,
);
controller.listaFiltrosCarregados[controller.listaFiltrosCarregados.indexWhere((element) => element.indexFiltros == index)].valorSelecionadoParaDropDown = controller.listaFiltrosCarregados[controller.listaFiltrosCarregados.indexWhere((element) => element.indexFiltros == index)].listaFiltros[0];
},
);
}
},
),
),
],
),
),
);
}