|
@@ -0,0 +1,118 @@
|
|
|
+import 'package:flutter/material.dart';
|
|
|
+import 'package:flutter/cupertino.dart';
|
|
|
+import 'package:flutterappfuyou/code/base/YSTools.dart';
|
|
|
+
|
|
|
+class YSBase extends StatefulWidget {
|
|
|
+ final Widget yschild;
|
|
|
+ final String ystitle;
|
|
|
+ final Widget ysright;
|
|
|
+ final Color ysColor;
|
|
|
+ final Color ysBgColor;
|
|
|
+ final bool isBack;
|
|
|
+ const YSBase({Key key, this.yschild,this.ystitle,this.ysright, this.ysColor, this.ysBgColor, this.isBack = true}) : super(key: key);
|
|
|
+ @override
|
|
|
+ _YSBaseState createState() => _YSBaseState();
|
|
|
+}
|
|
|
+
|
|
|
+class _YSBaseState extends State<YSBase> {
|
|
|
+ @override
|
|
|
+ Widget build(BuildContext context) {
|
|
|
+ return Scaffold(
|
|
|
+ backgroundColor: widget.ysBgColor??Colors.white,
|
|
|
+ body: Stack(
|
|
|
+ children: [
|
|
|
+ Container(
|
|
|
+ height: MediaQuery.of(context).padding.top+70,
|
|
|
+ width: MediaQuery.of(context).size.width,
|
|
|
+ color: widget.ysColor??Color(0xFFDB5278),
|
|
|
+ ),
|
|
|
+ Container(
|
|
|
+ margin: EdgeInsets.only(top: 20),
|
|
|
+ padding: EdgeInsets.only(left: 15,right: 15),
|
|
|
+ height: 30+MediaQuery.of(context).padding.top,
|
|
|
+ width: MediaQuery.of(context).size.width,
|
|
|
+ child: Row(
|
|
|
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
+ children: [
|
|
|
+ Container(
|
|
|
+ height: 30,
|
|
|
+ width: 20,
|
|
|
+ margin: EdgeInsets.only(right: 35),
|
|
|
+ child: widget.isBack?CupertinoButton(
|
|
|
+ padding: EdgeInsets.all(0),
|
|
|
+ child: Icon(Icons.arrow_back_ios,size: 20,color: Colors.white,),
|
|
|
+ onPressed: (){
|
|
|
+ FocusScope.of(context).unfocus();
|
|
|
+ Navigator.pop(context);
|
|
|
+ },
|
|
|
+ ):Container(),
|
|
|
+ ),
|
|
|
+ Container(
|
|
|
+ width: ysWidth(context)-150,
|
|
|
+ child: Text(widget.ystitle,style: TextStyle(color: Colors.white,fontSize: 16,decoration: TextDecoration.none,fontWeight: FontWeight.w600),
|
|
|
+ textAlign: TextAlign.center,maxLines: 1,),
|
|
|
+ ),
|
|
|
+ Container(
|
|
|
+ width: 55,
|
|
|
+ height: 30,
|
|
|
+ child: widget.ysright,
|
|
|
+ ),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ Container(
|
|
|
+ margin: EdgeInsets.only(top: 50+MediaQuery.of(context).padding.top),
|
|
|
+ height: MediaQuery.of(context).size.height-MediaQuery.of(context).padding.top-50,
|
|
|
+ width: MediaQuery.of(context).size.width,
|
|
|
+ decoration: BoxDecoration(
|
|
|
+ color: widget.ysBgColor??Color(0xFFFAF8F5),
|
|
|
+ borderRadius: BorderRadius.only(topLeft: Radius.circular(20),topRight: Radius.circular(20))
|
|
|
+ ),
|
|
|
+ child: widget.yschild,
|
|
|
+ )
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+class YSBase2 extends StatefulWidget {
|
|
|
+ final String title;
|
|
|
+ final Color color;
|
|
|
+ final Widget child;
|
|
|
+ const YSBase2({Key key, this.title = '', this.color, @required this.child}) : super(key: key);
|
|
|
+
|
|
|
+ @override
|
|
|
+ _YSBase2State createState() => _YSBase2State();
|
|
|
+}
|
|
|
+
|
|
|
+class _YSBase2State extends State<YSBase2> {
|
|
|
+ @override
|
|
|
+ Widget build(BuildContext context) {
|
|
|
+ return Scaffold(
|
|
|
+ appBar: CupertinoNavigationBar(
|
|
|
+ backgroundColor: Colors.white,
|
|
|
+ leading: GestureDetector(
|
|
|
+ child: Icon(Icons.arrow_back_ios,size: 20),
|
|
|
+ onTap: (){
|
|
|
+ Navigator.pop(context);
|
|
|
+ },
|
|
|
+ ),
|
|
|
+ middle: Text(widget.title,style: TextStyle(fontSize: 16),),
|
|
|
+ ),
|
|
|
+ body: Container(
|
|
|
+ height: MediaQuery.of(context).size.height-MediaQuery.of(context).padding.top-44,
|
|
|
+ width: MediaQuery.of(context).size.width,
|
|
|
+ color: widget.color??Colors.white,
|
|
|
+ child: SingleChildScrollView(
|
|
|
+ child: widget.child,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+class CustomerValueNotification extends Notification {
|
|
|
+ final Map value;
|
|
|
+ CustomerValueNotification(this.value);
|
|
|
+}
|