import 'dart:ui'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import '../../ui/widget/nav.dart'; import '../../utils/pageutils.dart'; import 'advice_submit.dart'; import 'package:launch_review/launch_review.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { // This widget is the root of your application. @override Widget build(BuildContext context) { return MaterialApp( title: '意见反馈', theme: ThemeData(primaryColor: Color(0xFFF5F5F5)), home: AdvicePage(title: ''), ); } } class AdvicePage extends StatefulWidget { AdvicePage({Key? key, required this.title}) : super(key: key); // This widget is the home page of your application. It is stateful, meaning // that it has a State object (defined below) that contains fields that affect // how it looks. // This class is the configuration for the state. It holds the values (in this // case the title) provided by the parent (in this case the App widget) and // used by the build method of the State. Fields in a Widget subclass are // always marked "final". final String title; @override _AdvicePageState createState() => _AdvicePageState(); } class _AdvicePageState extends State with SingleTickerProviderStateMixin { @override void initState() { super.initState(); } BoxDecoration getItemDecoration(Color bgColor, Color shadowColor) { return BoxDecoration( borderRadius: BorderRadius.all(Radius.elliptical(10, 10)), color: bgColor, boxShadow: [ BoxShadow( color: shadowColor, blurRadius: 2.0, offset: Offset(0.0, 5.0), //阴影y轴偏移量 spreadRadius: 1 //阴影扩散程度 ) ]); } @override Widget build(BuildContext context) { return Scaffold( backgroundColor: Color(0xFFFFFFFF), body: Container( child: Flex( direction: Axis.vertical, children: [ TopNavBar(title: "意见反馈"), Image.asset("assets/imgs/advice/ic_advice_top.png"), getItemView( bgColor: Color(0xFFFFC945), shadowColor: Color(0x4DFCA235), title: "提意见", subTitle: "有建议,请留言", icon: "assets/imgs/advice/icon_advice_msg.png", onTap: () { Navigator.of(context) .push(CustomRouteSlide(AdviceSubmitPage(title: ""))); }, ), getItemView( bgColor: const Color(0xFF29D5FF), shadowColor: const Color(0x4D0E96FF), title: "给鼓励", subTitle: "您的鼓励是我们前进的动力", icon: "assets/imgs/advice/icon_advice_like.png", onTap: () { LaunchReview.launch(); }, ), ], ), )); } Widget getItemView( {required Color bgColor, required Color shadowColor, required String title, required String subTitle, required String icon, required GestureTapCallback onTap}) { return InkWell( onTap: () { onTap(); }, child: Container( height: 92.5, padding: EdgeInsets.fromLTRB(20, 0, 24, 0), margin: EdgeInsets.fromLTRB(10, 12.5, 10, 4), decoration: getItemDecoration(bgColor, shadowColor), child: Flex( direction: Axis.horizontal, crossAxisAlignment: CrossAxisAlignment.center, children: [ Flex( direction: Axis.vertical, mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( title, style: TextStyle(color: Colors.white, fontSize: 24), ), Text( subTitle, style: TextStyle(color: Colors.white, fontSize: 14), ) ], ), Expanded(child: Container()), Image.asset( icon, height: 62, ) ], ), ), ); } }