didvan-app/lib/widgets/didvan/scaffold.dart

53 lines
1.6 KiB
Dart

import 'package:didvan/models/view/app_bar_data.dart';
import 'package:didvan/widgets/didvan/app_bar.dart';
import 'package:flutter/material.dart';
class DidvanScaffold extends StatelessWidget {
final List<Widget>? slivers;
final List<Widget>? children;
final AppBarData appBarData;
final bool hasPadding;
const DidvanScaffold({
Key? key,
this.slivers,
required this.appBarData,
this.hasPadding = true,
this.children,
}) : super(key: key);
@override
Widget build(BuildContext context) {
final double statusBarHeight = MediaQuery.of(context).padding.top;
return Scaffold(
body: Padding(
padding: EdgeInsets.only(top: statusBarHeight),
child: CustomScrollView(
slivers: [
SliverAppBar(
toolbarHeight: kToolbarHeight,
backgroundColor: Theme.of(context).backgroundColor,
automaticallyImplyLeading: false,
pinned: true,
flexibleSpace: DidvanAppBar(appBarData: appBarData),
),
const SliverToBoxAdapter(
child: SizedBox(height: 16),
),
if (children != null)
SliverPadding(
padding: const EdgeInsets.symmetric(horizontal: 16),
sliver: SliverList(
delegate: SliverChildBuilderDelegate(
(context, index) => children![index],
childCount: children!.length,
),
),
),
if (slivers != null) ...slivers!,
],
),
),
);
}
}