responsive_adaptive 1.0.2 copy "responsive_adaptive: ^1.0.2" to clipboard
responsive_adaptive: ^1.0.2 copied to clipboard

A comprehensive Flutter responsive adaptive package that provides responsive adaptive utilities.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:flutter_shared_utilities/flutter_shared_utilities.dart';
import 'package:responsive_adaptive/responsive_adaptive.dart';

import 'screens/home_screen.dart';

void main() {
  runApp(const ResponsiveAdaptiveExampleApp());
}

/// Main application widget demonstrating responsive adaptive functionality
// ignore: prefer-match-file-name
class ResponsiveAdaptiveExampleApp extends StatefulWidget {
  /// Creates a ResponsiveAdaptiveExampleApp
  const ResponsiveAdaptiveExampleApp({super.key});

  @override
  State<ResponsiveAdaptiveExampleApp> createState() =>
      _ResponsiveAdaptiveExampleAppState();
}

class _ResponsiveAdaptiveExampleAppState
    extends State<ResponsiveAdaptiveExampleApp> {
  late final ResponsiveAdaptiveManager _manager;
  bool _isInitialized = false;

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

  Future<void> _initializeManager() async {
    // Initialize with custom settings using async factory constructor
    _manager = await ResponsiveAdaptiveManager.create(
      const ResponsiveSettings(
        config: ResponsiveConfig(
          enableDebugMode: true, // Enable debug mode to see dynamic switching
        ),
      ),
    );

    // Set initial device info to prevent "DeviceInfo not set" error
    // This will be updated by ResponsiveWrapper once the widget tree is built
    _manager.updateDeviceInfo(
      DeviceInfo.mock(
        screenWidth: 400.0,
        screenHeight: 800.0,
        deviceType: DeviceType.mobile,
        platformType: PlatformType.current,
      ),
    );

    safeSetState(() {
      _isInitialized = true;
    });
  }

  @override
  void dispose() {
    _manager.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    if (!_isInitialized) {
      return MaterialApp(
        home: Scaffold(
          body: Center(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                const CircularProgressIndicator(),
                const SizedBox(height: 16),
                Text(
                  'Initializing Responsive Manager...',
                  style: Theme.of(context).textTheme.bodyLarge,
                ),
              ],
            ),
          ),
        ),
      );
    }

    return MaterialApp(
      title: 'Responsive Adaptive Manager Example',
      theme: ThemeData(primarySwatch: Colors.blue, useMaterial3: true),
      builder: (context, child) => ResponsiveWrapper.builder(
        manager: _manager,
        child: child!,
      ),
      home: const HomeScreen(),
      debugShowCheckedModeBanner: false,
    );
  }
}
0
likes
160
points
48
downloads

Publisher

unverified uploader

Weekly Downloads

A comprehensive Flutter responsive adaptive package that provides responsive adaptive utilities.

Repository (GitHub)
View/report issues

Topics

#responsive #adaptive #auto-layout #layout #size

Documentation

API reference

License

MIT (license)

Dependencies

flutter, flutter_shared_utilities

More

Packages that depend on responsive_adaptive