hyzp_ybqx-Commit001:代码刚转换好,编译通过
This commit is contained in:
@@ -0,0 +1,190 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart'; //import 'package:flustars/flustars.dart' as flustars; //该组件中有ScreenUtil,// 获取网络图片尺寸flustars.WidgetUtil
|
||||
import 'package:hyzp_ybqx/pages/Works/TJXX/tj_data.dart';
|
||||
import 'package:hyzp_ybqx/services/EventBus.dart';
|
||||
import 'package:hyzp_ybqx/widget/my_Tabs.dart' as my_Tabs;
|
||||
|
||||
import '../../components/commonFun.dart';
|
||||
import '../../services/Storage.dart';
|
||||
import 'FaceLogin2.dart';
|
||||
import 'LoginByName2.dart';
|
||||
|
||||
// class LoginTabsWidget extends StatelessWidget {
|
||||
// // This widget is the root of your application.
|
||||
// @override
|
||||
// Widget build(BuildContext context) {
|
||||
// //Flutter 强制竖屏
|
||||
// SystemChrome.setPreferredOrientations([
|
||||
// DeviceOrientation.portraitUp, //只能纵向
|
||||
// DeviceOrientation.portraitDown, //只能纵向
|
||||
// ]);
|
||||
//
|
||||
// return MaterialApp(
|
||||
// debugShowCheckedModeBanner: false,
|
||||
// title: 'Flutter Demo',
|
||||
// theme: ThemeData(
|
||||
// primarySwatch: Colors.blue,
|
||||
// visualDensity: VisualDensity.adaptivePlatformDensity,
|
||||
// ),
|
||||
// home: MyHomePage(title: 'Flutter Demo Home Page'),
|
||||
// );
|
||||
// }
|
||||
// }
|
||||
|
||||
class LoginTabsWidget extends StatefulWidget {
|
||||
LoginTabsWidget({Key key, this.title}) : super(key: key);
|
||||
final String title;
|
||||
|
||||
@override
|
||||
_MyHomePageState createState() => _MyHomePageState();
|
||||
}
|
||||
|
||||
class _MyHomePageState extends State<LoginTabsWidget> with SingleTickerProviderStateMixin {
|
||||
int loginTabs_index = 0;
|
||||
|
||||
//用TabController实现顶部tab切换
|
||||
TabController _tabController;
|
||||
|
||||
//try_setState(); //避免如下异常报错
|
||||
try_setState() {
|
||||
try {
|
||||
setState(() {});
|
||||
} catch (e) {
|
||||
print('setState(() {})异常:${e}');
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
|
||||
//若下面文件不存在,
|
||||
// /data/data/com.flutter.hyzp_ybqx/shared_prefs/FlutterSharedPreferences.xml
|
||||
// value为null, 会抛出异常:
|
||||
// [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: Invalid argument(s): The source must not be null
|
||||
// int.parse (dart:core-patch/integers_patch.dart:51:25)
|
||||
Storage.getString("tabs_index").then((value) {
|
||||
g_iIndex = (null == value) ? 0 : int.parse(value);
|
||||
});
|
||||
|
||||
Storage.getString("LoginTabs_index").then((value) {
|
||||
loginTabs_index = (null == value) ? 0 : int.parse(value);
|
||||
print('loginTabs_index = ${loginTabs_index}');
|
||||
//用TabController实现顶部tab切换,并设置默认 Tab。initialIndex: loginTabs_index
|
||||
_tabController = TabController(vsync: this, length: 2, initialIndex: loginTabs_index);
|
||||
|
||||
//监听 _tabController 切换事件
|
||||
_tabController.addListener(() {
|
||||
Storage.setString("LoginTabs_index", _tabController.index.toString());
|
||||
print('_tabController.index = ${_tabController.index}');
|
||||
});
|
||||
|
||||
//Flutter DefaultTabController 获取/设置当前 Tab - OK
|
||||
DefaultTabController.of(_scaffoldKey.currentContext).animateTo(loginTabs_index);
|
||||
try_setState();
|
||||
});
|
||||
|
||||
//监听统计数据改变事件
|
||||
eventBus.on<StatisDataUpdate>().listen((event) {
|
||||
print(event.str);
|
||||
updateMayLogin();
|
||||
});
|
||||
}
|
||||
|
||||
//处理延迟登录
|
||||
updateMayLogin() {
|
||||
//判断从网络获取三种统计数据是否完成
|
||||
// if (listZptjStatisAlone.length >= dwSum &&
|
||||
// listTodayShtj.length >= dwSum &&
|
||||
// listClltjStatisAlone.length >= dwSum) {
|
||||
// bMayLogin = true;
|
||||
// }
|
||||
if (listAllStatisData.length >= dwSum) {
|
||||
bMayLogin = true;
|
||||
} else {
|
||||
bMayLogin = false;
|
||||
}
|
||||
try_setState();
|
||||
}
|
||||
|
||||
dispose() {
|
||||
_tabController?.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
double _height = ScreenUtil().setHeight(1026);
|
||||
final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
width: double.infinity,
|
||||
height: _height,
|
||||
child: DefaultTabController(
|
||||
length: 2,
|
||||
child: Scaffold(
|
||||
key: _scaffoldKey,
|
||||
backgroundColor: Colors.transparent,
|
||||
appBar: PreferredSize(
|
||||
preferredSize: Size.fromHeight(50), // here the desired height
|
||||
child: AppBar(
|
||||
backgroundColor: Colors.transparent,
|
||||
bottom: TabBar(
|
||||
controller: _tabController,
|
||||
indicatorSize: TabBarIndicatorSize.label,
|
||||
labelColor: Color.fromRGBO(49, 216, 123, 1),
|
||||
unselectedLabelColor: Color.fromRGBO(118, 135, 162, 1),
|
||||
//tabs: <Widget>[Tab(text: " 密码登录 "), Tab(text: " 刷脸登录 ")],
|
||||
tabs: <Widget>[
|
||||
my_Tabs.MyTab(
|
||||
text: " 密码登录 ",
|
||||
style: TextStyle(fontSize: 18.0, fontWeight: FontWeight.bold)),
|
||||
my_Tabs.MyTab(
|
||||
text: " 刷脸登录 ",
|
||||
style: TextStyle(fontSize: 18.0, fontWeight: FontWeight.bold))
|
||||
],
|
||||
// tabs: <Widget>[
|
||||
// Text(" 密码登录 ", style: TextStyle(fontSize: 18.0, fontWeight: FontWeight.bold)),
|
||||
// Text(" 刷脸登录 ", style: TextStyle(fontSize: 18.0, fontWeight: FontWeight.bold)),
|
||||
// ],
|
||||
),
|
||||
),
|
||||
),
|
||||
body: Stack(
|
||||
children: [
|
||||
TabBarView(
|
||||
controller: _tabController,
|
||||
//flutter tabbar禁止手势滑动-OK
|
||||
physics: new NeverScrollableScrollPhysics(),
|
||||
children: <Widget>[
|
||||
LoginByName2(height: _height),
|
||||
FaceLogin2(),
|
||||
],
|
||||
),
|
||||
// bMayLogin
|
||||
// ? SizedBox.shrink()
|
||||
// : Positioned(
|
||||
// left: ScreenUtil().setWidth(0),
|
||||
// right: ScreenUtil().setWidth(0),
|
||||
// top: ScreenUtil().setHeight(297),
|
||||
// child: Container(
|
||||
// height: 200,
|
||||
// width: 400,
|
||||
// child: getMoreWidget2(
|
||||
// text: '正在获取网络数据 ...',
|
||||
// color: Colors.orangeAccent,
|
||||
// size: 25.0,
|
||||
// strokeWidth: 3.0,
|
||||
// fontWeight: FontWeight.w600,
|
||||
// edge: 0,
|
||||
// height: 60,
|
||||
// ), //显示加载中的圈圈,
|
||||
// ),
|
||||
// ),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user