Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
N
netrain_flutter_app
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
邹志胜
netrain_flutter_app
Commits
cc60affd
Commit
cc60affd
authored
Jul 12, 2021
by
laishanqi
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
# Conflicts: # netrain_flutter_app/lib/main.dart
parents
921d4174
c5521d1f
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
74 additions
and
67 deletions
+74
-67
main.dart
netrain_flutter_app/lib/main.dart
+3
-2
car_details.dart
netrain_flutter_app/lib/xuehao/car_details.dart
+7
-13
list_page.dart
netrain_flutter_app/lib/xuehao/list_page.dart
+64
-52
No files found.
netrain_flutter_app/lib/main.dart
View file @
cc60affd
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
{
...
...
netrain_flutter_app/lib/xuehao/car_details.dart
View file @
cc60affd
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
),
],
],
),
),
),
),
...
...
netrain_flutter_app/lib/xuehao/list_page.dart
View file @
cc60affd
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,58 +9,73 @@ class List_Page extends StatefulWidget {
...
@@ -11,58 +9,73 @@ 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"
,
appBar:
AppBar
(
theme:
ThemeData
(
title:
Text
(
"ListView"
),
primarySwatch:
Colors
.
blue
,
centerTitle:
true
,
//leading 返回按键
//GestureDetector 用于事件触发
leading:
GestureDetector
(
onTap:
()
{
//当前页面出栈
Navigator
.
pop
(
context
);
},
//左上角返回的小箭头
child:
Icon
(
Icons
.
arrow_back_ios
),
),
),
home:
Scaffold
(
),
appBar:
AppBar
(
body:
EasyRefresh
(
title:
Text
(
"ListView"
),
//下拉刷新头布局、可以自定义
centerTitle:
true
,
header:
TaurusHeader
(),
//leading 返回按键
//上拉加载尾布局,可以自定义
//GestureDetector 用于事件触发
footer:
TaurusFooter
(),
leading:
GestureDetector
(
enableControlFinishRefresh:
true
,
onTap:
()
{
enableControlFinishLoad:
true
,
//当前页面出栈
//刷新和加载的控制器,用于控制刷新和加载
Navigator
.
pop
(
context
);
controller:
_controller
,
},
child:
ListView
.
builder
(
//左上角返回的小箭头
//返回数据条数
child:
Icon
(
Icons
.
arrow_back_ios
),
itemCount:
datas
.
length
,
),
//itemBuilder 需要返回一个Widget
),
itemBuilder:
(
context
,
index
){
body:
EasyRefresh
(
return
_getDatas
(
index
);
//下拉刷新头布局、可以自定义
},
header:
TaurusHeader
(),
),
//上拉加载尾布局,可以自定义
//刷新动作被触发
footer:
TaurusFooter
(),
onRefresh:
()
async
{
enableControlFinishRefresh:
true
,
refreshData
();
enableControlFinishLoad:
true
,
},
//刷新和加载的控制器,用于控制刷新和加载
//加载动作被触发
controller:
_controller
,
onLoad:
()
async
{
child:
ListView
.
builder
(
loadData
();
//返回数据条数
},
itemCount:
datas
.
length
,
),
//itemBuilder 需要返回一个Widget
);
itemBuilder:
_getDatas
,
}
),
//刷新动作被触发
void
dispose
()
{
onRefresh:
()
async
{
super
.
dispose
();
refreshData
();
WidgetsBinding
.
instance
.
removeObserver
(
this
);
},
print
(
"dispose"
);
//加载动作被触发
}
onLoad:
()
async
{
loadData
();
@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
(
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment