datangyun 11 месяцев назад
Родитель
Сommit
b3b076f65c
1 измененных файлов с 118 добавлено и 0 удалено
  1. 118 0
      lib/code/base/YSBase.dart

+ 118 - 0
lib/code/base/YSBase.dart

@@ -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);
+}