Files
flisp_app/lib/layout/main_screen.dart
2025-11-20 11:04:29 +08:00

49 lines
1.4 KiB
Dart

import 'package:flisp_app/layout/app_body.dart';
import 'package:flisp_app/layout/app_drawer.dart';
import 'package:flisp_app/layout/app_floating_button.dart';
import 'package:flisp_app/layout/app_navbar.dart';
import 'package:flisp_app/provider/app_provider.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class MainScreen extends StatefulWidget {
const MainScreen({super.key});
@override
State<MainScreen> createState() => _MainScreenState();
}
class _MainScreenState extends State<MainScreen> {
final GlobalKey<AppBodyState> _appBodyKey = GlobalKey();
void _onPressedFloatingButton(int index) {
_appBodyKey.currentState?.showPageAddDialog(index);
}
@override
Widget build(BuildContext context) {
final provider = context.watch<AppProvider>();
return Scaffold(
drawer: const AppDrawer(),
appBar: AppBar(
title: Text(provider.currentAppBarTitle),
backgroundColor: Theme.of(context).colorScheme.primary,
foregroundColor: Theme.of(context).colorScheme.onPrimary,
elevation: 0,
),
body: Padding(
padding: EdgeInsets.all(10),
child: AppBody(key: _appBodyKey),
),
bottomNavigationBar: AppNavbar(),
floatingActionButton:
provider.currentTab == 3
? null
: AppFloatingButton(
onPressed: () => _onPressedFloatingButton(provider.currentTab),
),
);
}
}