rui_admin 0.0.16
rui_admin: ^0.0.16 copied to clipboard
A flutter UI, for crossing platform APP, supporting mobile and windows, macos, web. 主要特点:admin布局,左侧菜单栏可展开收起,在宽度太小时自动切换为drawer。
example/lib/main.dart
import 'package:example/main_frame.dart';
import 'package:example/providers/user_provider.dart';
import 'package:flutter/material.dart';
import 'package:rui_admin/components/rui_app.dart';
import 'package:provider/provider.dart';
import 'package:upgrader/upgrader.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// Only call clearSavedSettings() during testing to reset internal values.
await Upgrader.clearSavedSettings(); // REMOVE this for release builds
runApp(
const MyApp(),
);
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
Future<bool> _initializeApp(BuildContext? context) async {
// 模拟一些初始化操作
await Future.delayed(const Duration(seconds: 2));
if (context != null) {
// ignore: use_build_context_synchronously
final provider = Provider.of<UserProvider>(context, listen: false);
var res = await provider.load(); // 👈 初始化
//延迟弹出,等主界面显示后。
Future.delayed(const Duration(milliseconds: 500), () {
RuiApp.rootScaffoldMessengerKey.currentState?.showSnackBar(
SnackBar(
content: Text("应用初始化成功 $res"),
duration: const Duration(seconds: 2),
),
);
});
}
return true;
}
@override
Widget build(BuildContext context) {
return MultiProvider(
providers: [
ChangeNotifierProvider(create: (_) => UserProvider()),
],
child: RuiApp(
title: "RUI APP",
home: const MainFrame(),
//异步 app初始化操作
appInit: _initializeApp,
),
);
}
}