import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'my_page/revise_password_page.dart'; import 'package:flutter_picker/flutter_picker.dart'; import 'dart:convert'; class MyPage extends StatefulWidget { final Widget child; MyPage({ Key key, this.child }): super(key: key); _MyPageState createState() => _MyPageState(); } class _MyPageState extends State < MyPage > with AutomaticKeepAliveClientMixin { bool check = false; @override bool get wantKeepAlive => true; String _siteName = "请选择站点"; @override void initState() { // TODO: implement initState super.initState(); } @override Widget build(BuildContext context) { return Container( child: Scaffold( appBar: AppBar( elevation: 0, title: Text('我的', style: TextStyle( fontSize: ScreenUtil.getInstance().setSp(36) ), ), centerTitle: true, backgroundColor: Color.fromRGBO(64, 98, 254, 1), ), body: Container( color: Color.fromRGBO(246, 246, 254, 1), child: Column( children: < Widget > [ _avatarWidget(), _funWrapWidget(check, context) ], ), ), ) ); } Widget _avatarWidget() { return Container( color: Color.fromRGBO(64, 98, 254, 1), padding: EdgeInsets.fromLTRB(0, ScreenUtil.getInstance().setHeight(59), 0, ScreenUtil.getInstance().setHeight(67), ), child: Column( children: < Widget > [ Center( child: Padding( padding: EdgeInsets.only(bottom: ScreenUtil.getInstance().setWidth(24), ), child: ClipOval( child: Image.network('https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1551526964140&di=5c6270bf8b43e9ce83427b01da959481&imgtype=jpg&src=http%3A%2F%2Fimg0.imgtn.bdimg.com%2Fit%2Fu%3D3327849645%2C2696105688%26fm%3D214%26gp%3D0.jpg', fit: BoxFit.cover, width: ScreenUtil.getInstance().setWidth(120), height: ScreenUtil.getInstance().setWidth(120), ), ) ) ), Center(child: Text('Alisa Lin', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30), color: Color.fromRGBO(255, 255, 255, 1)), ), ) ], ), ); } Widget _funWrapWidget(bool check, BuildContext context) { return Container( padding: EdgeInsets.only(top: ScreenUtil.getInstance().setHeight(20)), child: Column( children: < Widget > [ _switchSite(context), _passWordWidget(), _linkPrint(check) ], ), ); } Widget _switchSite(BuildContext context) { return InkWell( child: Container( height: ScreenUtil.getInstance().setHeight(90), color: Colors.white, padding: EdgeInsets.fromLTRB(ScreenUtil.getInstance().setHeight(30), 0, 0, 0), child: Column( children: < Widget > [ Expanded( child: Center( child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: < Widget > [ Expanded( child: Row( mainAxisAlignment: MainAxisAlignment.start, children: < Widget > [ Padding( padding: EdgeInsets.only(right: ScreenUtil.getInstance().setWidth(22)), child: Image.asset('lib/images/icon_zhandianss.png', width: ScreenUtil.getInstance().setWidth(30), height: ScreenUtil.getInstance().setHeight(34), ) ), Text('站点切换', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30), color: Color.fromRGBO(74, 74, 74, 1)), ), ], ), ), Expanded( child: Row( mainAxisAlignment: MainAxisAlignment.end, children: < Widget > [ Text(_siteName, style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30), color: Color.fromRGBO(153, 153, 153, 1)), ), Icon(Icons.keyboard_arrow_right, color: Color.fromRGBO(199, 199, 204, 1)) ], ), ), ], ), ), ), Expanded( flex: 0, child: _underLine(), ) ], ) ), onTap: () { // showDialog < Null > ( // context: context, //BuildContext对象 // barrierDismissible: false, // builder: (BuildContext context) { // return SiteDialog( //调用对话框 // ); // }); showPickerModal(context); }, ); } showPickerModal(BuildContext context) { new Picker( adapter: PickerDataAdapter < String > (pickerdata: new JsonDecoder().convert('["回龙观","草桥","丰台"]')), height: ScreenUtil.getInstance().setHeight(450), confirmText: '确定', confirmTextStyle: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30),color: Color.fromRGBO(64,98,254,1)), cancelText: '取消', cancelTextStyle: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30),color: Color.fromRGBO(153,153,153,1)), headercolor: Color.fromRGBO(245,245,245,1), itemExtent: ScreenUtil.getInstance().setHeight(80), textStyle: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30),color: Color.fromRGBO(42,42,42,1)), changeToFirst: true, hideHeader: false, onConfirm: (Picker picker, List value) { print(value.toString()); print(picker.adapter); setState(() { _siteName = picker.adapter.text+'站点'; }); } ).showModal(this.context); //_scaffoldKey.currentState); } Widget _underLine() { return Container( height: ScreenUtil.getInstance().setHeight(1), color: Color.fromRGBO(223, 223, 223, 1), ); } Widget _passWordWidget() { return GestureDetector( child: Container( height: ScreenUtil.getInstance().setHeight(90), color: Colors.white, padding: EdgeInsets.fromLTRB(ScreenUtil.getInstance().setHeight(30), 0, 0, 0), child: Column( children: < Widget > [ Expanded( child: Center( child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: < Widget > [ Expanded( child: Row( mainAxisAlignment: MainAxisAlignment.start, children: < Widget > [ Padding( padding: EdgeInsets.only(right: ScreenUtil.getInstance().setWidth(22)), child: Image.asset('lib/images/icon_mimas.png', width: ScreenUtil.getInstance().setWidth(30), height: ScreenUtil.getInstance().setHeight(34), ) ), Text('修改密码', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30), color: Color.fromRGBO(74, 74, 74, 1)), ), ], ), ), Icon(Icons.keyboard_arrow_right, color: Color.fromRGBO(199, 199, 204, 1)) ], ), ), ) ], ) ), onTap: () { Navigator.push(context, MaterialPageRoute(builder: (context) { return RevisePasswordPage(); })); }, ); } Widget _linkPrint(bool check) { return Container( height: ScreenUtil.getInstance().setHeight(90), color: Colors.white, padding: EdgeInsets.fromLTRB(ScreenUtil.getInstance().setHeight(30), 0, 0, 0), margin: EdgeInsets.only(top: ScreenUtil.getInstance().setHeight(20)), child: Column( children: < Widget > [ Expanded( child: Center( child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: < Widget > [ Expanded( child: Row( mainAxisAlignment: MainAxisAlignment.start, children: < Widget > [ Padding( padding: EdgeInsets.only(right: ScreenUtil.getInstance().setWidth(22)), child: Image.asset('lib/images/icon_dayinji.png', width: ScreenUtil.getInstance().setWidth(30), height: ScreenUtil.getInstance().setHeight(34), ) ), Text('打印机连接', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30), color: Color.fromRGBO(74, 74, 74, 1)), ), ], ), ), Switch( value: this.check, activeColor: Colors.blue, onChanged: (bool val) { print("val:${val}"); this.setState(() { this.check = val; }); print('check:${this.check}'); }, ) ], ), ), ) ], ) ); } } // //打印机弹出层 // class PrintDialog extends Dialog { // PrintDialog({ // Key key, // }): super(key: key); // }