Advertisement
Guest User

AngelCollapsibleBar

a guest
Jul 10th, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 3.97 KB | None | 0 0
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter/rendering.dart';
  3.  
  4. import 'dart:math' as math;
  5.  
  6. import 'GradientButton.dart';
  7. import 'main_logo.dart';
  8. import 'CustomNavigation.dart';
  9. import 'StatusNavigationBar.dart';
  10. import 'ExpandibleBar.dart';
  11. import 'ProfileView.dart';
  12.  
  13.  
  14. import 'package:flutter/cupertino.dart';
  15.  
  16. void main() => runApp(new MyApp());
  17.  
  18. class MyApp extends StatelessWidget {
  19.   // This widget is the root of your application.
  20.   @override
  21.   Widget build(BuildContext context) {
  22.     return new MaterialApp(
  23.       title: 'Flutter Demo',
  24.       theme: new ThemeData(
  25.         primarySwatch: Colors.blue,
  26.       ),
  27.       home: new MyHomePage(title: 'Flutter Demo Home Page'),
  28.     );
  29.   }
  30. }
  31.  
  32. class MyHomePage extends StatefulWidget {
  33.   MyHomePage({Key key, this.title}) : super(key: key);
  34.  
  35.  
  36.  
  37.   final String title;
  38.  
  39.   @override
  40.   _MyHomePageState createState() => new _MyHomePageState();
  41. }
  42.  
  43. class _MyHomePageState extends State<MyHomePage> {
  44.   int _counter = 0;
  45.  
  46.   GradientAppBar appBARRRR = GradientAppBar(
  47.     title: RaisedButton(child: Text("Hola"),
  48.         onPressed: () {
  49.  
  50.     }),
  51.     backgroundColors: <Color>[Color(0xFFFD758E), Color(0xFFFD758E)],
  52.   );
  53.  
  54.   void _incrementCounter() {
  55.     setState(() {
  56.       _counter++;
  57.     });
  58.   }
  59.  
  60.   @override
  61.   Widget build(BuildContext context) {
  62.     return new Scaffold(
  63.       body: new NestedScrollView(
  64.         headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
  65.           return <Widget>[
  66.  
  67.             SliverPersistentHeader(
  68.               pinned: true,
  69.               delegate: _TestHeader(
  70.                   showHeading: true,
  71.                   expandedHeight: 300.0,
  72.                   collapsedHeight: 80.0
  73.               ),
  74.             ),
  75.  
  76.           ];
  77.         },
  78.         body: ListView.builder(
  79.           itemCount: 60,
  80.           itemBuilder: (BuildContext context, int index) {
  81.             return new Text('Item $index');
  82.           },
  83.         ),
  84.       ),
  85.     );
  86.   }
  87. }
  88.  
  89. class _TestHeader extends SliverPersistentHeaderDelegate {
  90.   _TestHeader({
  91.     @required this.collapsedHeight,
  92.     @required this.expandedHeight,
  93.     @required this.showHeading,
  94.   });
  95.  
  96.   bool showHeading;
  97.   final double expandedHeight;
  98.   final double collapsedHeight;
  99.  
  100.   @override
  101.   double get minExtent => collapsedHeight;
  102.  
  103.   @override
  104.   double get maxExtent => math.max(expandedHeight, minExtent);
  105.  
  106.   @override
  107.   Widget build(BuildContext context, double shrinkOffset, bool overlapsContent) {
  108.     print(shrinkOffset);
  109.     print("rebuilding headings");
  110.     return FlexibleSpaceBar.createSettings(
  111.         minExtent: minExtent,
  112.         maxExtent: maxExtent,
  113.         currentExtent: math.max(minExtent, maxExtent - shrinkOffset),
  114.         child: Container(
  115.           padding: EdgeInsets.only(top: MediaQuery.of(context).padding.top),
  116.           decoration: BoxDecoration(
  117.             gradient: LinearGradient(
  118.                 begin: Alignment.bottomLeft,
  119.                 end: Alignment.topRight,
  120.                 colors: <Color>[Color(0xFFFD758E), Color(0xFFFD758E)]
  121.             ),
  122.           ),
  123.  
  124.           child: Transform.scale(
  125.             scale: (((maxExtent - shrinkOffset - MediaQuery.of(context).padding.top) - 15.0) / expandedHeight).clamp(0.0, 1.0),
  126.             child: Column(
  127.               children: <Widget>[
  128.                 Row(
  129.                   children: <Widget>[
  130.                     Text("Test1"),
  131.                     Text("Test1"),
  132.                     Text("Test1"),
  133.                     Text("Test1")
  134.                   ],
  135.                 ),
  136.  
  137.                 RaisedButton(child: Text("Keen"),onPressed: () {
  138.                   print("Commander");
  139.                 }),
  140.                 Text("B")
  141.               ],
  142.             ),
  143.           ),
  144.         )
  145.     );
  146.   }
  147.  
  148.   @override
  149.   bool shouldRebuild(_TestHeader oldDelegate) {
  150.     return expandedHeight != oldDelegate.expandedHeight ||
  151.         collapsedHeight != oldDelegate.collapsedHeight;
  152.   }
  153. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement