Skip to content

Instantly share code, notes, and snippets.

@edutrul
Created May 20, 2018 05:22
Show Gist options
  • Save edutrul/f654d728fee7dc5e3568147b08089820 to your computer and use it in GitHub Desktop.
Save edutrul/f654d728fee7dc5e3568147b08089820 to your computer and use it in GitHub Desktop.
layoutuid_main.dart
import 'package:flutter/material.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
Widget titleSection = new Container(
// EdgeInserts.all is like adding padding top, right, left, bot)
// You can use EdgeInserts.only(top: 8.0, right: 40.0) for top and right!
padding: const EdgeInsets.all(32.0),
child: new Row(
children: [
// Expands elements inside to their maximum space!(in order to avoid
// to be very close to each other! it makes center with space available)
new Expanded(
child: new Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// Containers are like div! and have property of padding which
// Text doesn't have!
new Container(
padding: const EdgeInsets.only(bottom: 8.0),
child: new Text(
'Oeschinen Lake Campground',
style: new TextStyle(
fontWeight: FontWeight.bold,
),
),
),
new Text(
'Kandersteg, Switzerland',
style: new TextStyle(
color: Colors.grey[500],
),
),
],
),
),
new Icon(
Icons.star,
color: Colors.red[500],
),
new Text('49'),
],
),
);
Column buildButtonColumn(IconData icon, String label) {
Color color = Theme.of(context).primaryColor;
return new Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
children: [
new Icon(icon, color: color),
new Container(
margin: const EdgeInsets.only(top: 8.0),
child: new Text(
label,
style: new TextStyle(
fontSize: 12.0,
fontWeight: FontWeight.w400,
color: color,
),
),
),
],
);
}
Widget buttonSection = new Container(
child: new Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
buildButtonColumn(Icons.call, 'CALL'),
buildButtonColumn(Icons.near_me, 'ROUTE'),
buildButtonColumn(Icons.share, 'SHARE'),
],
),
);
Widget description = new Container(
padding: const EdgeInsets.all(32.0),
child: new Text(
'''
Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese Alps. Situated 1,578 meters above sea level, it is one of the larger Alpine Lakes.
A gondola ride from Kandersteg, followed by a half-hour walk through pastures and pine forest, leads you to the lake, which warms to 20 degrees Celsius in the summer.
Activities enjoyed here include rowing, and riding the summer toboggan run.
''',
// By default it is true! so it is not necessary!
softWrap: true,
)
);
Widget image = new Image.asset(
'images/lake.jpg',
height: 240.0,
fit: BoxFit.cover,
);
return new MaterialApp(
title: 'Flutter Demo',
theme: new ThemeData(
// This is the theme of your application.
//
// Try running your application with "flutter run". You'll see the
// application has a blue toolbar. Then, without quitting the app, try
// changing the primarySwatch below to Colors.green and then invoke
// "hot reload" (press "r" in the console where you ran "flutter run",
// or press Run > Flutter Hot Reload in IntelliJ). Notice that the
// counter didn't reset back to zero; the application is not restarted.
primarySwatch: Colors.lightBlue,
),
home: new Scaffold(
appBar: new AppBar(
title: new Text('Top Lakes'),
),
body: new ListView(
children: [
image,
titleSection,
buttonSection,
description
],
),
)
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment