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
83c395a8
Commit
83c395a8
authored
Jul 23, 2021
by
窦文
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mvvm
parent
829ea00b
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
36 additions
and
19 deletions
+36
-19
Demo2.dart
netrain_flutter_app/lib/douwen/Demo2.dart
+16
-13
BaseView.dart
netrain_flutter_app/lib/douwen/custom/BaseView.dart
+3
-3
BaseViewModel.dart
netrain_flutter_app/lib/douwen/custom/BaseViewModel.dart
+11
-0
AdRepository.dart
netrain_flutter_app/lib/douwen/custom/http/AdRepository.dart
+6
-3
No files found.
netrain_flutter_app/lib/douwen/Demo2.dart
View file @
83c395a8
...
@@ -10,9 +10,21 @@ import 'package:netrain_flutter_app/douwen/custom/http/AdService.dart';
...
@@ -10,9 +10,21 @@ import 'package:netrain_flutter_app/douwen/custom/http/AdService.dart';
import
'custom/http/base/IEntity.dart'
;
import
'custom/http/base/IEntity.dart'
;
class
Demo2
extends
BaseView
{
class
Demo2
extends
BaseView
{
Demo2
()
:
super
(
BaseViewModel
());
Demo2
()
:
super
(
BaseViewModel
())
{
builder
=
(
context
,
value
,
child
)
=>
Container
(
_item
(
String
title
,
VoidCallback
onPressed
)
{
return
Container
(
child:
RaisedButton
(
onPressed:
onPressed
,
child:
Text
(
title
),
),
);
}
@override
Widget
builder
(
BuildContext
context
,
BaseViewModel
value
,
Widget
child
)
{
Container
(
child:
Column
(
child:
Column
(
children:
[
children:
[
Row
(
Row
(
...
@@ -31,9 +43,9 @@ class Demo2 extends BaseView {
...
@@ -31,9 +43,9 @@ class Demo2 extends BaseView {
setReplaceView
(
Row
(
setReplaceView
(
Row
(
children:
[
children:
[
ValueListenableBuilder
(
ValueListenableBuilder
(
valueListenable:
viewModel
.
num
,
valueListenable:
viewModel
.
showText
,
builder:
(
context
,
value
,
child
)
=>
builder:
(
context
,
value
,
child
)
=>
Text
(
"点击了
${viewModel.num.value}
次"
)),
Text
(
value
.
toString
()
)),
ElevatedButton
(
ElevatedButton
(
onPressed:
()
async
{
onPressed:
()
async
{
viewModel
.
login
();
viewModel
.
login
();
...
@@ -45,13 +57,4 @@ class Demo2 extends BaseView {
...
@@ -45,13 +57,4 @@ class Demo2 extends BaseView {
)
)
);
);
}
}
_item
(
String
title
,
VoidCallback
onPressed
)
{
return
Container
(
child:
RaisedButton
(
onPressed:
onPressed
,
child:
Text
(
title
),
),
);
}
}
}
netrain_flutter_app/lib/douwen/custom/BaseView.dart
View file @
83c395a8
...
@@ -6,10 +6,8 @@ import 'EmptyPage.dart';
...
@@ -6,10 +6,8 @@ import 'EmptyPage.dart';
import
'ErrorPage.dart'
;
import
'ErrorPage.dart'
;
import
'ViewState.dart'
;
import
'ViewState.dart'
;
class
BaseView
extends
StatefulWidget
{
abstract
class
BaseView
extends
StatefulWidget
{
BaseViewModel
viewModel
;
BaseViewModel
viewModel
;
Widget
Function
(
BuildContext
context
,
BaseViewModel
value
,
Widget
child
)
builder
;
Widget
_mReplaceView
;
Widget
_mReplaceView
;
Widget
emptyView
=
EmptyPage
();
Widget
emptyView
=
EmptyPage
();
Widget
errorView
=
ErrorPage
();
Widget
errorView
=
ErrorPage
();
...
@@ -18,6 +16,8 @@ class BaseView extends StatefulWidget {
...
@@ -18,6 +16,8 @@ class BaseView extends StatefulWidget {
}
}
Widget
builder
(
BuildContext
context
,
BaseViewModel
value
,
Widget
child
);
Widget
setReplaceView
(
Widget
replaceView
)
{
Widget
setReplaceView
(
Widget
replaceView
)
{
_mReplaceView
=
replaceView
;
_mReplaceView
=
replaceView
;
switch
(
viewModel
.
viewState
??
ViewState
.
Normal
)
{
switch
(
viewModel
.
viewState
??
ViewState
.
Normal
)
{
...
...
netrain_flutter_app/lib/douwen/custom/BaseViewModel.dart
View file @
83c395a8
...
@@ -7,6 +7,7 @@ import 'ViewState.dart';
...
@@ -7,6 +7,7 @@ import 'ViewState.dart';
class
BaseViewModel
extends
ChangeNotifier
{
class
BaseViewModel
extends
ChangeNotifier
{
var
_viewState
;
var
_viewState
;
var
num
=
ValueNotifier
<
int
>(
0
);
var
num
=
ValueNotifier
<
int
>(
0
);
var
showText
=
ValueNotifier
<
String
>(
"稍等"
);
set
viewState
(
ViewState
viewState
)
=>
setViewState
(
viewState
);
set
viewState
(
ViewState
viewState
)
=>
setViewState
(
viewState
);
...
@@ -45,7 +46,17 @@ class BaseViewModel extends ChangeNotifier {
...
@@ -45,7 +46,17 @@ class BaseViewModel extends ChangeNotifier {
AdRepository
.
instance
.
login
((
str
)
{
AdRepository
.
instance
.
login
((
str
)
{
Fluttertoast
.
showToast
(
msg:
str
);
Fluttertoast
.
showToast
(
msg:
str
);
},
(
iEntity
)
{
},
(
iEntity
)
{
showText
.
post
(
iEntity
.
msg
);
Fluttertoast
.
showToast
(
msg:
iEntity
.
msg
);
Fluttertoast
.
showToast
(
msg:
iEntity
.
msg
);
});
});
}
}
}
}
extension
ValueNotifierValue
<
T
>
on
ValueNotifier
<
T
>{
void
post
(
T
t
){
value
=
t
;
notifyListeners
();
}
}
\ No newline at end of file
netrain_flutter_app/lib/douwen/custom/http/AdRepository.dart
View file @
83c395a8
...
@@ -3,7 +3,7 @@ import 'package:netrain_flutter_app/douwen/custom/http/AdService.dart';
...
@@ -3,7 +3,7 @@ import 'package:netrain_flutter_app/douwen/custom/http/AdService.dart';
import
'base/IEntity.dart'
;
import
'base/IEntity.dart'
;
import
'base/IRepository.dart'
;
import
'base/IRepository.dart'
;
class
AdRepository
with
IRepository
{
class
AdRepository
with
IRepository
{
AdRepository
.
_privateConstructor
(
this
.
_service
);
AdRepository
.
_privateConstructor
(
this
.
_service
);
static
AdRepository
_instance
;
static
AdRepository
_instance
;
...
@@ -17,6 +17,9 @@ class AdRepository with IRepository{
...
@@ -17,6 +17,9 @@ class AdRepository with IRepository{
final
AdService
_service
;
final
AdService
_service
;
void
login
(
void
onSuccess
(
String
str
),
void
onError
(
IEntity
iEntity
))
=>
getResult
<
String
>(
_service
.
login
(),
analysis:
(
data
)
=>
data
.
toString
(),
onSuccess:
(
str
)
=>
onSuccess
(
str
),
onError:
(
iEntity
)
=>
onError
(
iEntity
));
void
login
(
void
onSuccess
(
String
str
),
void
onError
(
IEntity
iEntity
))
=>
getResult
<
String
>(
_service
.
login
(),
analysis:
(
data
)
=>
data
.
toString
(),
onSuccess:
(
str
)
=>
onSuccess
(
str
),
onError:
(
iEntity
)
=>
onError
(
iEntity
));
}
}
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