List<User> get users => _users; bool get isLoading => _isLoading;
Future<void> fetchUsers() async _isLoading = true; notifyListeners(); _users = await _repository.getUsers(); _isLoading = false; notifyListeners(); The Ultimate Hands-On Flutter and MVVM - Build ...
// views/user_screen.dart import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../viewmodels/user_viewmodel.dart'; class UserScreen extends StatelessWidget @override Widget build(BuildContext context) final viewModel = Provider.of<UserViewModel>(context); return Scaffold( appBar: AppBar(title: Text("MVVM Users")), body: viewModel.isLoading ? Center(child: CircularProgressIndicator()) : ListView.builder( itemCount: viewModel.users.length, itemBuilder: (ctx, i) => ListTile( title: Text(viewModel.users[i].name), ), ), floatingActionButton: FloatingActionButton( onPressed: () => viewModel.fetchUsers(), child: Icon(Icons.refresh), ), ); List<User> get users => _users; bool get isLoading
class MyApp extends StatelessWidget @override Widget build(BuildContext context) return ChangeNotifierProvider( create: (ctx) => UserViewModel(), child: MaterialApp(home: UserScreen()), ); get users =>
Questo sito o gli strumenti terzi da questo utilizzati si avvalgono di cookie necessari al funzionamento ed utili alle finalità illustrate nella cookie policy. Se vuoi saperne di più o negare il consenso a tutti o ad alcuni cookie, consulta la cookie policy. Chiudendo questo banner, scorrendo questa pagina, cliccando su un link o proseguendo la navigazione in altra maniera, acconsenti all'uso dei cookie. Maggiori informazioni
Questo sito utilizza i cookie per fonire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo.
Disclaimer | Contattaci | FAQ | Privacy Policy | Cookie Policy
GTO-TGS © 2010-2025. Vietata la copia anche parziale del sito. Layout V5 designed by RayLight and edited by Heichou.