Comment puis-je responsabiliser mon application flutter avec MediaQuery ?

C'est tout mon code : S'il vous plaît dites-moi si vous connaissez une autre façon de faire cela les lignes 3 et 4 sont fausses. Que puis-je faire?

    return MaterialApp(
    var wi = MediaQuery.of(context).size.width;
    var he = MediaQuery.of(context).size.height;
      home: Scaffold(
        body: SafeArea(
          child: Container(
            width: wi,
            height: he,
            color: Colors.blueGrey[900],
            child: Column(
              children: <Widget>[
                Container(
                  alignment: Alignment.centerRight,
                  margin: EdgeInsets.only(
                    top: 30,
                  ),
                  padding: EdgeInsets.only(
                    right: 20,
                  ),
                  width: wi,
                  height: he * 0.3,
                  child: Text(
                    "3,670",
                    style: TextStyle(
                      fontSize: 70,
                      color: Colors.white,
                    ),
                  ),
                ),
    );
0
mmdrezaahmi 10 nov. 2020 à 23:01

1 réponse

Meilleure réponse

En flutter, il existe de nombreuses façons de créer une interface utilisateur réactive, que vous utilisiez MediaQuery ou Expanded ou toute sorte de widget réactif, cela dépend de votre application et de ce que vous voulez réaliser ou vous satisfait, voici le document flutter pour créer une application réactive si vous souhaitez en savoir plus sur le widget pour créer une application réactive. vous devriez utiliser le MediaQuery.of(context) entre le builder et le return widget car MediaQuery obtient le contexte du constructeur Note vous ne pouvez pas obtenir le MediaQuery avant de créer le widget MaterialApp, pour résoudre ce problème, vous devez d'abord créer le widget MaterialApp puis naviguer vers l'autre widget ce code est pour ça

void main() {
  runApp(MyApp());
}

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

  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
   
    return MaterialApp(
      theme: ThemeData(
        primarySwatch: Colors.blue,
        dividerColor: Colors.transparent,
      ),
      home: HomeScreen(),
    );
  }
}
class HomeScreen extends StatefulWidget {
  @override
  _HomeScreenState createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {
@override
  Widget build(BuildContext context) {
    var wi = MediaQuery.of(context).size.width;
    var he = MediaQuery.of(context).size.height;
    return Scaffold(
      body: Container(
        width: wi,
        height: he,
        color: Colors.blueGrey[900],
        child: Column(
          children: <Widget>[
            Container(
              alignment: Alignment.centerRight,
              margin: EdgeInsets.only(
                top: 30,
              ),
              padding: EdgeInsets.only(
                right: 20,
              ),
              width: wi,
              height: he * 0.3,
              child: Text(
                "3,670",
                style: TextStyle(
                  fontSize: 70,
                  color: Colors.white,
                ),
              ),
            )
          ],
        ),
      ),
    );
  }
}

Vous devez vraiment suivre un cours sur youtube cliquez ici si vous voulez < a href="https://flutter.dev/docs/development/ui/widgets-intro" rel="nofollow noreferrer">lire le document

1
ahmed 10 nov. 2020 à 23:38