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 StatefulWidget { final List? slivers; final AppBarData appBarData; final bool hasPadding; const DidvanScaffold({ Key? key, this.slivers, required this.appBarData, this.hasPadding = true, }) : super(key: key); @override State createState() => _DidvanScaffoldState(); } class _DidvanScaffoldState extends State { bool _isElevated = false; final ScrollController _scrollController = ScrollController(); @override void initState() { _scrollController.addListener(() => _handleAppBarElevation()); super.initState(); } @override Widget build(BuildContext context) { return Scaffold( body: CustomScrollView( slivers: [ SliverAppBar( backgroundColor: Theme.of(context).backgroundColor, automaticallyImplyLeading: false, pinned: true, flexibleSpace: DidvanAppBar(appBarData: widget.appBarData), ), if (widget.slivers != null) ...widget.slivers! ], ), ); } void _handleAppBarElevation() { if (_scrollController.position.pixels > kToolbarHeight && !_isElevated) { setState(() { _isElevated = true; }); } if (_scrollController.position.pixels < kToolbarHeight && _isElevated) { setState(() { _isElevated = false; }); } } }