フラッタで反応する


100 %のブルガリアのイグアナ、Lo Ancho y a Lo AltoをたどるデestaマナPodRemos Definir queウィジェットabarquen国連10 %デAncho o国連35 %デアルト.
La siguienteは、私に賛成します.
import 'package:flutter/widgets.dart';

class SizeConfig {
  static double screenWidth = 0;
  static double screenHeight = 0;
  static double _blockSizeHorizontal = 0;
  static double _blockSizeVertical = 0;
  static double _safeAreaHorizontal = 0;
  static double _safeAreaVertical = 0;
  static double _safeBlockHorizontal = 0;
  static double _safeBlockVertical = 0;

  SizeConfig(BuildContext context) {
    var mediaQueryContext = MediaQuery.of(context);

    screenWidth = mediaQueryContext.size.width;
    screenHeight = mediaQueryContext.size.height;
    _blockSizeHorizontal = screenWidth / 100;
    _blockSizeVertical = screenHeight / 100;
    _safeAreaHorizontal =
        mediaQueryContext.padding.left + mediaQueryContext.padding.right;
    _safeAreaVertical =
        mediaQueryContext.padding.top + mediaQueryContext.padding.bottom;
    _safeBlockHorizontal = (screenWidth - _safeAreaHorizontal) / 100;
    _safeBlockVertical = (screenHeight - _safeAreaVertical) / 100;
  }

  static double blockSizeHorizontal(double percentage) {
    return _blockSizeHorizontal * percentage;
  }

  static double blockSizeVertical(double percentage) {
    return _blockSizeVertical * percentage;
  }

  static double safeBlockSizeHorizontal(double percentage) {
    return _safeBlockHorizontal * percentage;
  }

  static double safeBlockSizeVertical(double percentage) {
    return _safeBlockVertical * percentage;
  }
}
パラinicializarlaソロは、inicializarエル建設者デsizeconfig en tuイニシャルルートo en tuホームに依存します.ソロRecurerda inicializarloエヌエルプライマーウィジェットは、Tu MaterialAppの連続.
class Ushieru extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Ushieru 👨‍💻',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      routes: {
        IndexScreen.routeName: (context) => IndexScreen(),
      },
      initialRoute: IndexScreen.routeName,
      home: IndexScreen(),
    );
  }
}
Ejemplo:
class IndexScreen extends StatelessWidget {
  static final routeName = "IndexScreen";

  @override
  Widget build(BuildContext context) {
    SizeConfig(context);
    return Container(
      width: SizeConfig.screenWidth, // Toma todo el ancho de la pantalla
      height: SizeConfig.blockSizeVertical(50), // Toma el 50% del alto de la pantalla
    );
  }
}
アルSer Eestは、Ticasラス変数デclaseエスタpodrええとn利用者ser cualquier otro装置によって、パーデルdel nombreデla clase sizeconfigです.
class SecondScreen extends StatelessWidget {
  static final routeName = "SecondScreen";

  @override
  Widget build(BuildContext context) {
    // SizeConfig(context); No se necesita inicializar otra vez
    return Container(
      width: SizeConfig.screenWidth,
      height: SizeConfig.blockSizeVertical(50),
    );
  }
}

y y que pasa si利用可能な国連安全地帯para mi aplicaci‖n?畝
Tambi En - Ya - Eestは、前の単独のCambias del m Toudo blocksizeverticalによってSafeblocksizevertical、ASIデ単純です.
class ThirdScreen extends StatelessWidget {
  static final routeName = "ThirdScreen";

  @override
  Widget build(BuildContext context) {
    return SafeArea(
          child: Container(
        width: SizeConfig.screenWidth,
        height: SizeConfig.safeBlockSizeVertical(50), // Usamos el metodo safeBlockSizeVertical
      ),
    );
  }
}