Untitled
user_5465063857
dart
3 years ago
6.0 kB
8
Indexable
import 'package:flutter/material.dart';
import 'package:flutter_foro/src/models/asistentes_model.dart';
import 'package:flutter_foro/src/providers/asistentes_provider.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart';
class ListaAsistentesAppState extends StatelessWidget {
const ListaAsistentesAppState({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
Map? parametros = ModalRoute.of(context)!.settings.arguments as Map?;
final idSede = parametros?['idSede'] ?? 0;
return MultiProvider(
providers: [
ChangeNotifierProvider(
create: (_) => AsistentesProvider(),
lazy: false,
)
],
child: ListaAsistentes(idSede: idSede),
);
}
}
class ListaAsistentes extends StatefulWidget {
final int idSede;
const ListaAsistentes({Key? key, required this.idSede}) : super(key: key);
@override
State<ListaAsistentes> createState() => _ListaAsistentesState();
}
class _ListaAsistentesState extends State<ListaAsistentes> {
Widget customSearchBar = const Text('Registro');
int ast = 0;
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: const Color(0xFFFAFAFA),
resizeToAvoidBottomInset: false,
appBar: AppBar(
title: customSearchBar,
automaticallyImplyLeading: true,
centerTitle: true,
backgroundColor: const Color(0xFF5c6bc0),
elevation: 0,
toolbarHeight: 60,
),
body: BusquedaListado(idSede: widget.idSede),
/*persistentFooterButtons: [
Container(
color: Colors.black87,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
const Padding(
padding: EdgeInsets.fromLTRB(20, 10, 20, 10),
child: Text(
'Asistentes Registrados',
style: TextStyle(color: Colors.white, fontSize: 16),
),
),
Padding(
padding: const EdgeInsets.fromLTRB(20, 10, 20, 10),
child: Text(ast.toString(),
style: const TextStyle(color: Colors.white, fontSize: 22)),
)
],
),
),
],*/
);
}
}
class BusquedaListado extends StatefulWidget {
final int idSede;
const BusquedaListado({Key? key, required this.idSede}) : super(key: key);
@override
State<BusquedaListado> createState() => _BusquedaListadoState();
}
class _BusquedaListadoState extends State<BusquedaListado> {
//final items = List<String>.generate(25, (i) => "Item $i");
@override
Widget build(BuildContext context) {
final asisProvider = Provider.of<AsistentesProvider>(context);
final size = MediaQuery.of(context).size;
return FutureBuilder(
future: asisProvider.resultsAsistentes(widget.idSede),
builder: (_, AsyncSnapshot<List<Result>> snapshot) {
if (!snapshot.hasData) {
return SizedBox(
width: double.infinity,
height: size.height * 0.5,
child: const Center(
child: CircularProgressIndicator(),
),
);
}
final List<Result> asdata = snapshot.data!;
/*WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
setState(() {
ListaAsistentes
});
});*/
return Column(
children: <Widget>[
/*Padding(
padding: const EdgeInsets.all(8.0),
child: TextField(
onChanged: (value) {},
decoration: const InputDecoration(
labelText: "Buscar",
hintText: "Buscar",
prefixIcon: Icon(Icons.search),
border: OutlineInputBorder(
borderRadius:
BorderRadius.all(Radius.circular(5.0)))),
),
),*/
Expanded(
child: ListView.separated(
shrinkWrap: true,
itemCount: asdata.length,
itemBuilder: (BuildContext context, int index) => Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Padding(
padding: const EdgeInsets.fromLTRB(20, 10, 0, 10),
child: Text(
asdata[index].nombre.toString() +
' ' +
asdata[index].apellidos.toString(),
style: const TextStyle(
fontSize: 14, color: Color(0xFF757575))),
),
Padding(
padding: const EdgeInsets.fromLTRB(0, 10, 20, 10),
child: Container(
color: const Color(0xFF2fc298),
width: 35.0,
height: 35.0,
child: TextButton(
onPressed: () {
Navigator.pushNamed(context, 'asignacodigo',
arguments: {'idsus': asdata[index].idsus});
},
child: const Icon(
FontAwesomeIcons.plus,
color: Colors.white,
size: 15.0,
)),
),
)
],
),
separatorBuilder: (BuildContext context, int index) =>
const Divider(color: Colors.black12),
),
),
],
);
});
}
}
Editor is loading...