simple_tree 1.1.2 copy "simple_tree: ^1.1.2" to clipboard
simple_tree: ^1.1.2 copied to clipboard

A highly performant and reactive tree structure widget for Flutter, built with rxflare for efficient state management and rendering.

example/lib/main.dart

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:rxflare/rxflare.dart';

import 'login_page.dart';
import 'auth.dart';
import 'home.dart';
import 'not_found.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();

  ErrorWidget.builder = (FlutterErrorDetails flutterErrorDetails) {
    logError(flutterErrorDetails);

    if (kReleaseMode) {
      // uploadError(flutterErrorDetails);
    }
    return Material(
      child: Center(
        child: Text(
          kDebugMode ? 'Error: ${flutterErrorDetails.exceptionAsString()}' : 'An error occurred. Please try again later.',
        ),
      ),
    );
  };

  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});
  // @override
  // Widget build(BuildContext context) {
  //   return MaterialApp(
  //       title: 'UI管理框架',
  //       theme: ThemeData(
  //         canvasColor: Colors.transparent,
  //       ),
  //       debugShowCheckedModeBanner: false,
  //       initialRoute: 'main',
  //       onGenerateRoute: _routeGenerator);
  // }
  @override
  Widget build(BuildContext context) {
    return Rx.custom(
      deps: [Auth.isLoggedIn],
      builder: () {
        final loggedIn = Auth.isLoggedIn.value;

        return MaterialApp(
          title: 'UI管理框架',
          theme: ThemeData(
            canvasColor: Colors.transparent,
          ),
          debugShowCheckedModeBanner: false,
          home: loggedIn ? const Home() :   const LoginPage(), // 👈 推荐
          onGenerateRoute: _routeGenerator,
        );
      },
    );
  }

  Route _routeGenerator(RouteSettings settings) {
    var builder = routeList[settings.name];

    final route = MaterialPageRoute(
      builder: builder ??= (content) => const NotFound(),
      settings: settings,
    );
    return route;
  }
}

Map<String, WidgetBuilder> routeList = {
  "notFound": (content) => const NotFound(),
  "main": (content) => const Home(),
};

// 考虑使用集中日志记录功能以提高错误跟踪
void logError(FlutterErrorDetails details) {
  FlutterError.dumpErrorToConsole(details);
}
0
likes
160
points
292
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A highly performant and reactive tree structure widget for Flutter, built with rxflare for efficient state management and rendering.

Repository (GitHub)
View/report issues

Topics

#tree #treeview #reactive #performance #flutter-widgets

License

MIT (license)

Dependencies

flutter, rxflare

More

Packages that depend on simple_tree