responsive_adaptive 1.0.2
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,
);
}
}