Commit 38e9efb9 authored by jishuaishuai's avatar jishuaishuai

MVVM的ViewModel拿到接口了,等待解析

parent 1aac69f7
import 'package:dio/dio.dart';
class ApiPostSomeUrl {
/**
* 登录方法
* id 参数
*/
dynamic get(String curNum) async {
return await Dio().get(
"http://swyy.cying.com.cn/common/preheat",
queryParameters: {
"curNum": curNum,
},
);
}
}
\ No newline at end of file
import 'package:flutter/material.dart';
import 'package:netrain_flutter_app/jishuaishuai/MVVMDemo/ViewModelDemo.dart';
import 'package:provider/provider.dart';
class MVVMViewDemo extends StatefulWidget {
MVVMViewDemo({Key key}) : super(key: key);
@override
_MVVMViewDemoState createState() {
return _MVVMViewDemoState();
}
}
class _MVVMViewDemoState extends State<MVVMViewDemo> {
@override
void initState() {
super.initState();
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
// TODO: implement build
return Scaffold(
appBar: AppBar(
title: Text("MVVM模式"),
),
body: ElevatedButton(
child: Text("点击调用get请求"),
onPressed: ()async{
context.read<ViewModelGet>().get("1");
},
),
);
}
}
\ No newline at end of file
import 'ModelDemo.dart';
import 'package:flutter/material.dart';
import 'dart:convert' as JSON;
class ViewModelGet extends ChangeNotifier{
ApiPostSomeUrl _model = ApiPostSomeUrl();
void get(String curNum) async{
var result = await _model.get(curNum);
print(result);
// Map<,Object>map =JSON.jsonDecode(result);
List list = JSON.jsonDecode(result);
print(list);
}
}
\ No newline at end of file
import 'package:flutter/material.dart';
import 'package:netrain_flutter_app/jishuaishuai/MVVMDemo/ViewDemo.dart';
class fifthDemo extends StatefulWidget {
fifthDemo({Key key}) : super(key: key);
// fifthDemo({Key key}) : super(key: key);
@override
_fifthDemoState createState() {
......@@ -35,7 +36,7 @@ class _fifthDemoState extends State<fifthDemo> {
}
class fifthListViewDemo extends StatefulWidget {
fifthListViewDemo({Key key}) : super(key: key);
// fifthListViewDemo({Key key}) : super(key: key);
@override
_fifthListViewDemoState createState() {
......@@ -71,11 +72,16 @@ class _fifthListViewDemoState extends State<fifthListViewDemo> {
}
return Container(
child: Flex(
direction: Axis.vertical,
children: [
Text(listArr[index].toString()),
ElevatedButton(onPressed: (){
print("点击了");
}, child:Text("我是个按钮") ),
Navigator.of(context).push(MaterialPageRoute(
builder: (context){
return MVVMViewDemo();
}
));
}, child:Text("点击进入MVVM设计模式页面") ),
Container(
width: 100,
height: 300,
......@@ -86,10 +92,12 @@ class _fifthListViewDemoState extends State<fifthListViewDemo> {
),
);
}),
onRefresh: _onRefresh,
),
);
}
Future _onRefresh() async {
await Future.delayed(
Duration(seconds: 2),
......
import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:netrain_flutter_app/common/Images.dart';
import 'secondVC.dart';
......@@ -141,6 +142,9 @@ class imageiconDemo extends StatelessWidget {
// fit: BoxFit.fitWidth
// ),
Image.asset(Images.ic_my_info),
ElevatedButton(onPressed: (){
apiGet();
}, child: Text("测试点击事件请求"))
],
);
......@@ -150,3 +154,10 @@ class imageiconDemo extends StatelessWidget {
}
}
class apiGet{
var result = Dio().get("http://api.td0f7/cn:8083/dio/dio/test?id=1");
}
\ No newline at end of file
import 'package:flutter/material.dart';
import 'package:netrain_flutter_app/jishuaishuai/fifthVC.dart';
class fourthDemo extends StatefulWidget {
fourthDemo({Key key}) : super(key: key);
......@@ -74,7 +75,9 @@ class _someDemoState extends State<someDemo> {
Text(e.toString()),
ElevatedButton(
onPressed: () {
Navigator.of(context).push(MaterialPageRoute(builder: (context){
return fifthDemo();
}));
},
child: Text("点击进入第5个页面"))
],
......
......@@ -17,7 +17,7 @@ class twoVCdemo extends StatelessWidget {
body: Column(
children: [
ElevatedButton(
child: Text("第二页面的按钮,跳转带参数过去"),
child: Text("传参数进入第三个页面"),
onPressed: () {
Navigator.of(context).push(MaterialPageRoute(
builder: (context) {
......@@ -41,6 +41,28 @@ class twoVCdemo extends StatelessWidget {
direction: Axis.horizontal,
children: [
Image.asset(Images.ic_home_normal, alignment: Alignment.center,),
Align(
alignment:Alignment(-0.5,0.5),
child: Stack(
alignment: AlignmentDirectional.center,
children: [
Container(
width: 100,
height: 30,
color: Colors.orange,
),
Container(
color: Colors.red,
child: Text("点击进入"),
),
Positioned(
right: 0,
top: 5,
child: Image.asset(Images.ic_home_normal)),
],
),
)
],
)
......
import 'package:flustars/flustars.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:netrain_flutter_app/jishuaishuai/MVVMDemo/ViewDemo.dart';
import 'package:netrain_flutter_app/jishuaishuai/MVVMDemo/ViewModelDemo.dart';
import 'package:netrain_flutter_app/xuehao/BottomNavpage.dart';
import 'package:netrain_flutter_app/xuehao/car_details.dart';
import 'package:netrain_flutter_app/common/AppColors.dart';
import 'package:netrain_flutter_app/xuehao/grid_page.dart';
import 'package:netrain_flutter_app/xuehao/list_page.dart';
import 'package:provider/provider.dart';
import 'laishanqi/Stateful_page.dart';
import 'laishanqi/Stateless_page.dart';
......@@ -27,12 +31,23 @@ import 'zhangfeng/LayoutDemo.dart';
import 'jishuaishuai/firstVC.dart';
void main() {
runApp(MyApp());
runApp(
MultiProvider(
providers: [
ChangeNotifierProvider(
create: (context) => ViewModelGet(),
)
],
child: MyApp(),
)
);
// runApp(Login());
// runApp(TestPage());
UserModel.getModel();
print("启动");
print("启动"
);
}
class MyApp extends StatelessWidget {
......@@ -42,7 +57,7 @@ class MyApp extends StatelessWidget {
setDesignWHD(375, 812);
// 设置状态栏为透明
SystemUiOverlayStyle systemUiOverlayStyle =
SystemUiOverlayStyle(statusBarColor: Colors.transparent);
SystemUiOverlayStyle(statusBarColor: Colors.transparent);
SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);
return WillPopScope(
......@@ -78,7 +93,7 @@ class MyApp extends StatelessWidget {
"LoginRequestPage": (context) => LoginRequestPage(),
"PageView": (context) => SampleAppPage(),
"LayoutDemo": (context) => LayoutDemo(),
"main": (context) => mainPage(),
"main": (context) => mainPage(context),
"firstVC": (context) => jssPageDemo(),
"car_details": (context) => CarDetailsPage(),
"student": (context) => jssPageDemo(),
......@@ -95,7 +110,7 @@ class MyApp extends StatelessWidget {
}
}
Widget mainPage() {
Widget mainPage(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("NetRain Flutter学习计划"),
......@@ -119,7 +134,7 @@ class _RouterNavigatorState extends State<RouterNavigator> {
Widget build(BuildContext context) {
return Container(
child: Container(
margin: EdgeInsets.only(left: 10,right: 10),
margin: EdgeInsets.only(left: 10, right: 10),
child: Wrap(
spacing: 10,
children: [
......@@ -131,31 +146,32 @@ class _RouterNavigatorState extends State<RouterNavigator> {
byName = value;
});
}),
_item("登陆", LoginPage(), 'login'),
_item("首页", LessGroupPage(), 'doctor_MainPage'),
_item("less页面", LessGroupPage(), 'less'),
_item("ful页面", FulGroupPage(), 'ful'),
_item("layout页面", LayoutPage(), 'layout'),
_item("拍照页面", PhotoApp(), 'photo'),
_item("登录网络请求", LoginRequestPage(), 'LoginRequestPage'),
_item("CustomTabPage", TabBarPage(), 'CustomTabPage'),
_item("PageView", SampleAppPage(), 'PageView'),
_item("LayoutDemo", LayoutDemo(), 'LayoutDemo'),
_item("listview页面", List_Page(), 'listPage'),
_item("jssDemo", jssPageDemo(), 'firstVC'),
_item("jssDemo", jssPageDemo(), 'student'),
_item("gridView", GridPage(), 'grid_page'),
_item("BottomNav", BottomNavPage(), 'bottom_page'),
_item("登陆", LoginPage(), 'login',context),
_item("首页", LessGroupPage(), 'doctor_MainPage',context),
_item("less页面", LessGroupPage(), 'less',context),
_item("ful页面", FulGroupPage(), 'ful',context),
_item("layout页面", LayoutPage(), 'layout',context),
_item("拍照页面", PhotoApp(), 'photo',context),
_item("登录网络请求", LoginRequestPage(), 'LoginRequestPage',context),
_item("CustomTabPage", TabBarPage(), 'CustomTabPage',context),
_item("PageView", SampleAppPage(), 'PageView',context),
_item("LayoutDemo", LayoutDemo(), 'LayoutDemo',context),
_item("listview页面", List_Page(), 'listPage',context),
_item("jssDemo", jssPageDemo(), 'firstVC',context),
_item("jssDemo", jssPageDemo(), 'student',context),
_item("gridView", GridPage(), 'grid_page',context),
_item("BottomNav", BottomNavPage(), 'bottom_page',context),
],
),
),
);
}
_item(String title, page, String routeName) {
_item(String title, page, String routeName ,BuildContext context) {
return Container(
child: ElevatedButton(
onPressed: () {
// Navigator.of(context).push(route)
if (byName) {
Navigator.pushNamed(context, routeName);
} else {
......
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