mlsdk_flutter 1.0.0-beta.1 copy "mlsdk_flutter: ^1.0.0-beta.1" to clipboard
mlsdk_flutter: ^1.0.0-beta.1 copied to clipboard

discontinued
outdated

Mindlinker meeting Flutter plugin project.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'dart:io';

import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:mlsdk_flutter/mlsdk_flutter.dart';
import 'package:mlsdk_flutter_example/constrant/Constrant.dart';
import 'package:mlsdk_flutter_example/constrant/MLColor.dart';
import 'package:mlsdk_flutter_example/page/routes.dart';

void main() async{
  runApp(const MyApp());

  if (Platform.isAndroid) {
    SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle(
        statusBarIconBrightness: Brightness.dark, // 状态栏字体颜色
        statusBarBrightness: Brightness.dark // 状态栏背景色
        ));
  }

  await initMLSdk();
}

Future<MLResult> initMLSdk() async{
  MLOption option = MLOption(Constrant.serverUrl, Constrant.logPath,
      enableConsoleLog: true, enableLog: true);
  return MlsdkFlutter.init(option);
}

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  ///主题配置
  ThemeData get theme {
    const Color _primaryColor = MLColor.mainColor;

    return ThemeData(
      buttonColor: MLColor.mainTextColor,
      brightness: Brightness.light,
      splashColor: Colors.transparent,
      highlightColor: Colors.transparent,

      //次颜色(灰色)、影响TabBar选中颜色,文字颜色
      primaryColor: _primaryColor,
      // 主题色
      primaryColorLight: MLColor.mainColor,
      //禁用波纹效果
      accentColor: Colors.transparent,
      splashFactory: NoSplash.splashFactory,


      // 设置路由切换的过渡动画(页面切换动画)
      pageTransitionsTheme: PageTransitionsTheme(
        builders: <TargetPlatform, PageTransitionsBuilder>{
          TargetPlatform.iOS: const CupertinoPageTransitionsBuilder(),
        },
      ),
      //主色调,高亮色(紫色)
      tabBarTheme: const TabBarTheme(
        //tabbar主题
        labelColor: MLColor.mainTextColor,
        labelStyle: TextStyle(fontSize: 16),
        unselectedLabelStyle: TextStyle(fontSize: 16),
        indicator: BoxDecoration(
            border: Border(bottom: BorderSide(color: Colors.green, width: 2))),
      ),
      buttonTheme: const ButtonThemeData(
          splashColor: Colors.transparent, highlightColor: Colors.transparent),

      appBarTheme: const AppBarTheme(brightness: Brightness.light),
      // StatusBar
      textTheme: const TextTheme(headline6: TextStyle(color: _primaryColor)),
      scaffoldBackgroundColor: Colors.white,
      colorScheme:
          ColorScheme.fromSwatch().copyWith(secondary: const Color(0xff706f70)),
    );
  }

  @override
  State<MyApp> createState() => _MyAppState();
}

// 路由转场动画啊
class MyPageTransitionsBuilder extends PageTransitionsBuilder {
  @override
  Widget buildTransitions<T>(
      PageRoute<T> route,
      BuildContext context,
      Animation<double> animation,
      Animation<double> secondaryAnimation,
      Widget child) {
    var begin = const Offset(1.0, 0.0);
    var end = const Offset(0.0, 0.0);

    var tween = Tween(begin: begin, end: end);
    var offsetAnimation = animation.drive(tween);
    return SlideTransition(
      position: offsetAnimation,
      child: child,
    );
  }
}

class _MyAppState extends State<MyApp> {

  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    var body = getBody();

    return ScreenUtilInit(
        designSize: const Size(375, 667), builder: (context, child) => body);
  }

  getBody() {
    return MaterialApp(
      theme: widget.theme,
      initialRoute: loginPage,
      routes: routes,
      navigatorObservers: [FlutterSmartDialog.observer],
      builder: FlutterSmartDialog.init(),
    );
  }
}