4
2
Fork 0

finished appbar, needs refactoring - closes #1

pull/31/head
Sudharshan S. 2019-02-09 22:35:11 +08:00
parent 4e69cbf4e9
commit d7323c3470
Signed by: sudharshan
GPG Key ID: C861C97AAF3D9559
3 changed files with 104 additions and 23 deletions

View File

@ -11,9 +11,13 @@ ThemeData buildTheme() {
accentColor: accentColor,
primaryColor: primaryColor,
primaryColorDark: primaryColorDark,
highlightColor: accentColor,
textTheme: buildTextTheme(base.textTheme),
primaryTextTheme: buildTextTheme(base.textTheme),
accentTextTheme: buildTextTheme(base.textTheme));
accentTextTheme: buildTextTheme(base.textTheme),
iconTheme: buildIconTheme(),
primaryIconTheme: buildIconTheme(),
accentIconTheme: buildIconTheme());
}
TextTheme buildTextTheme(TextTheme base) {
@ -30,3 +34,7 @@ TextTheme buildTextTheme(TextTheme base) {
displayColor: Colors.white,
bodyColor: accentColor);
}
IconThemeData buildIconTheme() {
return IconThemeData(color: Colors.white, opacity: 1.0, size: 24.0);
}

View File

@ -2,7 +2,8 @@ import "package:flutter/material.dart";
class TopBar extends StatelessWidget {
final String title;
final double barHeight = 50.0;
final double barHeight = 100.0;
final String logo = "assets/logo.png";
TopBar(title) : title = title;
@ -10,25 +11,91 @@ class TopBar extends StatelessWidget {
Widget build(BuildContext context) {
final double statusbarHeight = MediaQuery.of(context).padding.top;
return Container(
padding: EdgeInsets.only(top: statusbarHeight, bottom: statusbarHeight),
height: statusbarHeight * 2,
child: Row(
children: <Widget>[
Text("Conversations", style: Theme.of(context).textTheme.display1)
],
),
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [
Theme.of(context).primaryColor,
Theme.of(context).primaryColorDark
],
begin: Alignment.topLeft,
end: Alignment.bottomRight,
stops: [0.0, 1.0],
tileMode: TileMode.clamp),
),
);
return Material(
type: MaterialType.canvas,
elevation: 10.0,
child: Container(
padding: EdgeInsets.only(top: statusbarHeight, bottom: 13.0),
child: Material(
type: MaterialType.transparency,
elevation: 10.0,
color: Colors.transparent,
child: Column(children: <Widget>[
Stack(alignment: Alignment.center, children: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Padding(
padding: EdgeInsets.only(left: 10.0),
child: Image.asset(logo,
semanticLabel: "Beep Logo",
width: 24.0,
height: 24.0)),
Spacer(),
IconButton(
icon: Icon(Icons.search),
onPressed: () {
print("Pressed");
}),
IconButton(
icon: Icon(Icons.dehaze),
onPressed: () {
print("Pressed");
})
],
),
Positioned(
child: Text("Conversations",
style: Theme.of(context).textTheme.display1)),
]),
Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Opacity(
opacity: 1.0,
child: Padding(
padding: EdgeInsets.only(left: 5.0),
child: Container(
width: 5.0,
height: 5.0,
decoration: BoxDecoration(
color: Colors.white,
shape: BoxShape.circle)))),
Opacity(
opacity: 0.6,
child: Padding(
padding: EdgeInsets.only(left: 5.0),
child: Container(
width: 5.0,
height: 5.0,
decoration: BoxDecoration(
color: Colors.white,
shape: BoxShape.circle)))),
Opacity(
opacity: 0.6,
child: Padding(
padding: EdgeInsets.only(left: 5.0),
child: Container(
width: 5.0,
height: 5.0,
decoration: BoxDecoration(
color: Colors.white,
shape: BoxShape.circle)))),
]),
])),
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [
Theme.of(context).primaryColor,
Theme.of(context).primaryColorDark
],
begin: Alignment.topLeft,
end: Alignment.bottomRight,
stops: [0.0, 1.0],
tileMode: TileMode.clamp),
),
));
}
}

View File

@ -8,7 +8,7 @@ environment:
dependencies:
flutter:
sdk: flutter
font_awesome_flutter: ^8.4.0
flutter_svg: ^0.10.3
dev_dependencies:
@ -16,6 +16,12 @@ dev_dependencies:
sdk: flutter
flutter:
uses-material-design: true
assets:
- assets/logo.svg
- assets/logo.png
fonts:
- family: Inter
fonts: