首页 > 解决方案 > Flutter:尝试在 MaterialApp() 下的 inputDecorationTheme 中设置 TextField 样式时出现 MediaQuery.of() 错误

问题描述

我正在尝试使用 MediaQuery 使用一些响应式字体大小和填充设置 inputDecorationTheme,但出现以下错误:

“使用不包含 MediaQuery 的上下文调用 MediaQuery.of()。从传递给 MediaQuery.of() 的上下文开始找不到 MediaQuery 祖先。这可能是因为您没有 WidgetsApp 或 MaterialApp 小部件(这些小部件引入了 MediaQuery),或者如果您使用的上下文来自这些小部件上方的小部件,则可能会发生这种情况。使用的上下文是:MyApp“

我已经浏览过其他有类似问题的帖子,但就我而言,我在 ThemeData > inputDecorationTheme 中使用 MediaQuery。

注意:我使用单独的文件来访问 MediQuery。下面是我的代码:

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {


    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: MyHomeApp(),
      theme: ThemeData(
        primaryColor: Color(0xff00bcd4),

        // TextFormField Decoration
        inputDecorationTheme: InputDecorationTheme(
          contentPadding:
             EdgeInsets.symmetric(vertical: SizeConfig.heightMultiplier * 2),
          labelStyle: TextStyle(
              fontFamily: "Montserrat",
              fontSize: SizeConfig.textMultiplier * 2.3),
          hintStyle: TextStyle(
              fontFamily: "Montserrat",
              fontSize: SizeConfig.textMultiplier * 2.2),
          enabledBorder:
              OutlineInputBorder(borderSide: BorderSide(color: custColor)),
          focusedBorder: OutlineInputBorder(
            borderSide: BorderSide(color: Colors.greenAccent),
          ),
        ),
      ),

标签: flutter

解决方案


推荐阅读