screen_size_adapter 1.0.0 copy "screen_size_adapter: ^1.0.0" to clipboard
screen_size_adapter: ^1.0.0 copied to clipboard

Binding-level screen-size adapter for Flutter with per-view configuration.

example/lib/main.dart

import 'dart:async' show Timer;
import 'dart:io' show exit, stdout;

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

import 'pages/home_page.dart';
import 'state/adapter_settings.dart';

const _startupSmoke = bool.fromEnvironment('SCREEN_SIZE_ADAPTER_STARTUP_SMOKE');

void main() {
  final binding = ScreenSizeWidgetsFlutterBinding.ensureInitialized(
    const ScreenSizeAdapterConfig(
      designSize: kPortraitDesign,
      enableDesktopScaling: true,
    ),
  );

  if (_startupSmoke) {
    binding.addPostFrameCallback((_) {
      stdout.writeln('SCREEN_SIZE_ADAPTER_STARTUP_READY');
      Timer(const Duration(seconds: 1), () => exit(0));
    });
  }

  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

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

class _MyAppState extends State<MyApp> {
  late final AdapterSettings _settings = AdapterSettings();

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'screen_size_adapter Demo',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: HomePage(settings: _settings),
    );
  }
}
0
likes
160
points
90
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Binding-level screen-size adapter for Flutter with per-view configuration.

Repository (GitHub)
View/report issues
Contributing

Topics

#screen-size #layout #design-size #responsive

License

Apache-2.0 (license)

Dependencies

flutter

More

Packages that depend on screen_size_adapter