Skip to content

Commit

Permalink
0
Browse files Browse the repository at this point in the history
  • Loading branch information
yanjiangping committed May 24, 2020
1 parent 821fb61 commit 1c4e7ba
Show file tree
Hide file tree
Showing 8 changed files with 331 additions and 4 deletions.
11 changes: 11 additions & 0 deletions lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,24 @@ import 'package:flutter_demo/data.dart';
import 'package:flutter_demo/pages/Tabs.dart';
import 'package:flutter_demo/pages/appBarDemo.dart';
import 'package:flutter_demo/routes/Routes.dart';
import 'package:flutter_localizations/flutter_localizations.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
localizationsDelegates: [
// 本地化的代理类
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
supportedLocales: [
const Locale('en', 'US'), // 美国英语
const Locale('zh', 'CN'), // 中文简体
//其它Locales
],
debugShowCheckedModeBanner: false,
home: TabsPage(),
// routes: {
Expand Down
38 changes: 35 additions & 3 deletions lib/pages/Tabs.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
import 'package:flutter/material.dart';
import 'package:flutter_demo/pages/appBarDemo.dart';
import 'package:flutter_demo/pages/radio_page.dart';
import 'CheckBox.dart';
import 'Home.dart';
import 'Setting.dart';
import 'TextField.dart';
import 'date_pick_pub.dart';
import 'date_picker.dart';

class TabsPage extends StatefulWidget {
@override
Expand All @@ -9,13 +15,37 @@ class TabsPage extends StatefulWidget {

class _TabsPageState extends State<TabsPage> {
int pageIndex;
List pageList=[HomePage(),SettingPage()];
List pageList=[DatePickPub(),HomePage(),RadioPage()];

_TabsPageState({this.pageIndex:0});

@override
Widget build(BuildContext context) {
return Scaffold(
floatingActionButton: Container(
height:60,
width: 60,
// decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(40),
// color: Colors.white,
// ),
margin: EdgeInsets.only(top:5),
//padding: EdgeInsets.all(10),
child: FloatingActionButton(
backgroundColor: pageIndex==1?Colors.red:Colors.yellow,
child: Icon(
Icons.add,
color: Colors.black,
size: 36,
),
onPressed: (){
setState(() {
pageIndex=1;
});
}
),
),
floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
appBar: AppBar(
title: Text('我是标题'),
),
Expand Down Expand Up @@ -68,6 +98,8 @@ class _TabsPageState extends State<TabsPage> {
),
endDrawer: Drawer(child: Text('bbb')),
bottomNavigationBar: BottomNavigationBar(
fixedColor: Colors.red,
type: BottomNavigationBarType.fixed,//配置底部可以有多个按钮
onTap: (index){
setState(() {
pageIndex = index;
Expand All @@ -76,8 +108,8 @@ class _TabsPageState extends State<TabsPage> {
currentIndex: pageIndex,
items: [
BottomNavigationBarItem(title: Text('首页'), icon: Icon(Icons.home)),
BottomNavigationBarItem(
title: Text('设置'), icon: Icon(Icons.settings))
BottomNavigationBarItem(title: Text('分类'), icon: Icon(Icons.score)),
BottomNavigationBarItem(title: Text('设置'), icon: Icon(Icons.settings))
]),
);
}
Expand Down
7 changes: 6 additions & 1 deletion lib/pages/appBarDemo.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,12 @@ class AppBarDemoPage extends StatelessWidget {
length: 2,
child: Scaffold(
floatingActionButton: FloatingActionButton(
child: Icon(Icons.send),
backgroundColor: Colors.yellow,
child: Icon(
Icons.add,
color: Colors.black,
size: 36,
),
onPressed: (){
print('aa');
}
Expand Down
68 changes: 68 additions & 0 deletions lib/pages/date_pick_pub.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
import 'package:flutter/material.dart';
import 'package:flutter_cupertino_date_picker/flutter_cupertino_date_picker.dart';
import 'package:date_format/date_format.dart';

class DatePickPub extends StatefulWidget{
@override
State<StatefulWidget> createState()=>DatePickPubState();
}

class DatePickPubState extends State<DatePickPub>{

DateTime _dateTime=DateTime.now();

_showDatePicker(){
DatePicker.showDatePicker(
context,
onMonthChangeStartWithFirstDate: true,
pickerTheme: DateTimePickerTheme(
showTitle: true,
confirm: Text('确定', style: TextStyle(color: Colors.red)),
cancel: Text('取消', style: TextStyle(color: Colors.cyan)),
),
minDateTime: DateTime.parse('1980-05-12'),
maxDateTime: DateTime.parse('2100-11-25'),
initialDateTime: _dateTime,
//dateFormat: 'yyyy-MMMM-dd',
dateFormat: 'yyyy年M月d日 EEE,H时:m分',
pickerMode: DateTimePickerMode.datetime, // show TimePicker
locale: DateTimePickerLocale.zh_cn,
onClose: () => print("----- onClose -----"),
onCancel: () => print('onCancel'),
/*onChange: (dateTime, List<int> index) {
setState(() {
_dateTime = dateTime;
});
},*/
onConfirm: (dateTime, List<int> index) {
setState(() {
_dateTime = dateTime;
});
},
);
}

@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
InkWell(
child: Row(
children: <Widget>[
Text(formatDate(_dateTime, [yyyy, '年', mm, '月', dd,'日',HH, ':', nn])),
Icon(Icons.arrow_drop_down)
],
),
onTap: _showDatePicker,
),
],
)
],
);
}

}
85 changes: 85 additions & 0 deletions lib/pages/date_picker.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
import 'package:flutter/material.dart';
import 'package:date_format/date_format.dart';

class DatePicker extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return DatePickerState();
}
}

class DatePickerState extends State<DatePicker> {

var date=DateTime.now();
TimeOfDay time;

@override
void initState() {
super.initState();
time=TimeOfDay(hour: date.hour, minute: date.minute);
//print(now);//2020-05-24 09:32:02.308065
//print(now.millisecondsSinceEpoch);//1590283882112
//print(DateTime.fromMillisecondsSinceEpoch(1590283882112));//2020-05-24 09:31:22.112
//print(formatDate(DateTime.now(), [yyyy, '年', mm, '月', dd,'日']));
}

_showDatePicker() async{
/*showDatePicker(
context: context,
initialDate: now,
firstDate: DateTime(1980),
lastDate: DateTime(2100)
).then((value) => print(value));*/
var result=await showDatePicker(
context: context,
initialDate: date,
firstDate: DateTime(1980),
lastDate: DateTime(2100)
);
setState(() {
date=result;
});
}

_showTimePicker() async{
var result=await showTimePicker(
context: context,
initialTime: time
);
setState(() {
time=result;
});
}

@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
InkWell(
child: Row(
children: <Widget>[
Text(formatDate(date, [yyyy, '-', mm, '-', dd])),
Icon(Icons.arrow_drop_down)
],
),
onTap: _showDatePicker,
),
InkWell(
child: Row(
children: <Widget>[
Text('${time.format(context)}'),
Icon(Icons.arrow_drop_down)
],
),
onTap: _showTimePicker,
)
],
)
],
);
}
}
95 changes: 95 additions & 0 deletions lib/pages/radio_page.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

class RadioPage extends StatefulWidget{
@override
State<StatefulWidget> createState() {
return RadioPageState();
}

}
class RadioPageState extends State<RadioPage>{

int sex=1;

var flag=true;

@override
Widget build(BuildContext context) {
return Padding(
padding: EdgeInsets.all(10),
child: Column(
children: <Widget>[
/*Row(
children: <Widget>[
Text('男:'),
Radio(
value: 1,
groupValue: sex,
onChanged: (v){
setState(() {
sex=v;
});
}
),
SizedBox(width: 20),
Text('女:'),
Radio(
value: 2,
groupValue: sex,
onChanged: (v){
setState(() {
sex=v;
});
}
)
],
),
Row(
children: <Widget>[
Text(sex==1?'男':'女')
],
)*/
RadioListTile(
selected: sex==1,
activeColor: Colors.red,
secondary: Icon(Icons.home),
title: Text('标题'),
subtitle: Text('副标题'),
value: 1,
groupValue: sex,
onChanged: (v){
setState(() {
sex=v;
});
}
),
RadioListTile(
selected: sex==2,
activeColor: Colors.red,
secondary: Image.network('https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=2832826449,831072255&fm=26&gp=0.jpg'),
title: Text('标题'),
subtitle: Text('副标题'),
value: 2,
groupValue: sex,
onChanged: (v){
setState(() {
sex=v;
});
}
),
SizedBox(height: 40),
Switch(
value: flag,
onChanged: (v){
setState(() {
flag=v;
});
}
)
],
),
);
}

}
Loading

0 comments on commit 1c4e7ba

Please sign in to comment.