scrolling_navbar 0.0.4 scrolling_navbar: ^0.0.4 copied to clipboard
A simple and easy to implement feature
import 'package:flutter/material.dart';
import 'package:scrolling_navbar/scrolling_navbar.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
body: ScrollingNavbar(
appBar: AppBar(
// Increase the height
toolbarHeight: 70,
// Add that snazzy logo
leading: Padding(
padding: const EdgeInsets.all(8.0),
child: Image.network(
'https://d3mds3ychln71.cloudfront.net/img/flutter-logo@3x.png'),
),
// Fatten it up
leadingWidth: 200,
// Change the background color
backgroundColor: Colors.red,
// Style the links
titleTextStyle: TextStyle(fontSize: 24, color: Colors.blue[900]),
// Throw some buttons after the fact
actions: <Widget>[
IconButton(
icon: Icon(Icons.shopping_cart),
tooltip: 'Open shopping cart',
onPressed: () {
// handle the press
},
),
],
),
headings: [
'Page 1',
'Page 2',
'Page 3',
],
children: [
MyPage1Widget(),
MyPage2Widget(),
MyPage3Widget(),
],
),
),
);
}
}
class MyPage1Widget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
Row(
children: [
MyBox(darkGreen, height: 50),
],
),
Row(
children: [
MyBox(lightGreen),
MyBox(lightGreen),
],
),
MyBox(mediumGreen, text: 'PageView 1'),
Row(
children: [
MyBox(lightGreen, height: 200),
MyBox(lightGreen, height: 200),
],
),
],
);
}
}
class MyPage2Widget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
Row(
children: [
MyBox(darkBlue, height: 50),
MyBox(darkBlue, height: 50),
],
),
Row(
children: [
MyBox(lightBlue),
MyBox(lightBlue),
],
),
MyBox(mediumBlue, text: 'PageView 2'),
Row(
children: [
MyBox(lightBlue),
MyBox(lightBlue),
],
),
],
);
}
}
class MyPage3Widget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
Row(
children: [
MyBox(darkRed),
MyBox(darkRed),
],
),
MyBox(mediumRed, text: 'PageView 3'),
Row(
children: [
MyBox(lightRed),
MyBox(lightRed),
MyBox(lightRed),
],
),
],
);
}
}
const lightBlue = Color(0xff00bbff);
const mediumBlue = Color(0xff00a2fc);
const darkBlue = Color(0xff0075c9);
final lightGreen = Colors.green.shade300;
final mediumGreen = Colors.green.shade600;
final darkGreen = Colors.green.shade900;
final lightRed = Colors.red.shade300;
final mediumRed = Colors.red.shade600;
final darkRed = Colors.red.shade900;
class MyBox extends StatelessWidget {
final Color color;
final double height;
final String text;
MyBox(this.color, {this.height, this.text});
@override
Widget build(BuildContext context) {
return Expanded(
child: Container(
margin: EdgeInsets.all(10),
color: color,
height: (height == null) ? 150 : height,
child: (text == null)
? null
: Center(
child: Text(
text,
style: TextStyle(
fontSize: 50,
color: Colors.white,
),
),
),
),
);
}
}