Commit cc60affd authored by laishanqi's avatar laishanqi

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	netrain_flutter_app/lib/main.dart
parents 921d4174 c5521d1f
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart'; import 'package:fluttertoast/fluttertoast.dart';
import 'package:netrain_flutter_app/xuehao/car_details.dart';
import 'package:netrain_flutter_app/common/AppColors.dart'; import 'package:netrain_flutter_app/common/AppColors.dart';
import 'package:netrain_flutter_app/xuehao/list_page.dart'; import 'package:netrain_flutter_app/xuehao/list_page.dart';
...@@ -49,8 +50,8 @@ class MyApp extends StatelessWidget { ...@@ -49,8 +50,8 @@ class MyApp extends StatelessWidget {
"listPage":(context) => List_Page(), "listPage":(context) => List_Page(),
"LoginRequestPage":(context) => LoginRequestPage(), "LoginRequestPage":(context) => LoginRequestPage(),
"main": (context) => mainPage(), "main": (context) => mainPage(),
"student":(context) => jssPageDemo() "student":(context) => jssPageDemo(),
"car_details":(context) =>CarDetailsPage()
}, },
), ),
onWillPop: () async { onWillPop: () async {
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:netrain_flutter_app/xuehao/Car.dart';
/** /**
* @author xuehao * @author xuehao
* on 2021/7/9 * on 2021/7/9
*/ */
class CarDetailsPage extends StatefulWidget { class CarDetailsPage extends StatefulWidget {
String name, imageUrl;
CarDetailsPage({Key key, @required this.name, @required this.imageUrl})
: super(key: key);
@override @override
_CarDetailsState createState() => _CarDetailsState(name, imageUrl); _CarDetailsState createState() => _CarDetailsState();
} }
class _CarDetailsState extends State<CarDetailsPage> { class _CarDetailsState extends State<CarDetailsPage> {
String name, imageUrl; Car args;
_CarDetailsState(this.name, this.imageUrl);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
args = ModalRoute.of(context).settings.arguments;
return MaterialApp( return MaterialApp(
title: "car_details", title: "car_details",
home: Scaffold( home: Scaffold(
...@@ -37,9 +32,8 @@ class _CarDetailsState extends State<CarDetailsPage> { ...@@ -37,9 +32,8 @@ class _CarDetailsState extends State<CarDetailsPage> {
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
Text(name), Text(args.name),
SizedBox(height: 40), Image.network(args.imageUrl),
Image.network(imageUrl),
], ],
), ),
), ),
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart'; import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:netrain_flutter_app/xuehao/car_details.dart';
import 'Car.dart'; import 'Car.dart';
class List_Page extends StatefulWidget { class List_Page extends StatefulWidget {
...@@ -11,15 +9,10 @@ class List_Page extends StatefulWidget { ...@@ -11,15 +9,10 @@ class List_Page extends StatefulWidget {
EasyRefreshController _controller = EasyRefreshController(); EasyRefreshController _controller = EasyRefreshController();
class _ListPageState extends State<List_Page> { class _ListPageState extends State<List_Page> with WidgetsBindingObserver {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return new MaterialApp( return new Scaffold(
title: "listPage",
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Scaffold(
appBar: AppBar( appBar: AppBar(
title: Text("ListView"), title: Text("ListView"),
centerTitle: true, centerTitle: true,
...@@ -47,7 +40,9 @@ class _ListPageState extends State<List_Page> { ...@@ -47,7 +40,9 @@ class _ListPageState extends State<List_Page> {
//返回数据条数 //返回数据条数
itemCount: datas.length, itemCount: datas.length,
//itemBuilder 需要返回一个Widget //itemBuilder 需要返回一个Widget
itemBuilder: _getDatas, itemBuilder: (context,index){
return _getDatas(index);
},
), ),
//刷新动作被触发 //刷新动作被触发
onRefresh: () async { onRefresh: () async {
...@@ -58,11 +53,29 @@ class _ListPageState extends State<List_Page> { ...@@ -58,11 +53,29 @@ class _ListPageState extends State<List_Page> {
loadData(); loadData();
}, },
), ),
)); );
}
void dispose() {
super.dispose();
WidgetsBinding.instance.removeObserver(this);
print("dispose");
}
@override
void initState() {
super.initState();
WidgetsBinding.instance.addObserver(this);
print("initState");
}
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
print(state);
} }
///获取item视图 ///获取item视图
Widget _getDatas(BuildContext context, int position) { Widget _getDatas(int position) {
return Container( return Container(
child: GestureDetector( child: GestureDetector(
child: Card( child: Card(
...@@ -85,15 +98,14 @@ class _ListPageState extends State<List_Page> { ...@@ -85,15 +98,14 @@ class _ListPageState extends State<List_Page> {
), ),
onTap: () { onTap: () {
var data = datas[position]; var data = datas[position];
Fluttertoast.showToast(msg: "我点击了${data.name}"); Navigator.pushNamed(context, "car_details", arguments: data);
Navigator.push(context, new MaterialPageRoute(builder: (context) => new CarDetailsPage(name: data.name,imageUrl: data.imageUrl,)));
}, },
)); ));
} }
///刷新数据 ///刷新数据
Future<void> refreshData() async { Future<void> refreshData() async {
await Future.delayed(Duration(seconds: 3), () { await Future.delayed(Duration(seconds: 2), () {
setState(() { setState(() {
for (int i = 0; i < datas.length; i++) { for (int i = 0; i < datas.length; i++) {
datas[i].name = "刷新后的数据$i"; datas[i].name = "刷新后的数据$i";
...@@ -105,7 +117,7 @@ class _ListPageState extends State<List_Page> { ...@@ -105,7 +117,7 @@ class _ListPageState extends State<List_Page> {
///加载数据 ///加载数据
Future<void> loadData() async { Future<void> loadData() async {
await Future.delayed(Duration(seconds: 3), () { await Future.delayed(Duration(seconds: 2), () {
setState(() { setState(() {
for (int i = 0; i < 10; i++) { for (int i = 0; i < 10; i++) {
datas.add(Car( datas.add(Car(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment