首页 > 解决方案 > 我在颤振中使用 ScreenUtil 库时出错

问题描述

我正在尝试使用 ScreenUtil() 使我的文本字体大小响应。此行导致错误“ ScreenUtil.init(context); ”。错误是“使用不包含 MediaQuery 的上下文调用 MediaQuery.of()。

Widget build(BuildContext context) {


ScreenUtil.init(context);

return MaterialApp(
    title: 'Meals App',
    theme: ThemeData(
      primarySwatch: Colors.pink,
      accentColor: Colors.amber,
      canvasColor: Color.fromRGBO(255, 254, 229, 1),
      fontFamily: 'Raleway',
      textTheme: TextTheme(
        headline6: TextStyle(
          fontSize: ScreenUtil().setSp(100),
          fontFamily: 'RobotoCondensed',
          fontWeight: FontWeight.bold,
        ),
        bodyText1: TextStyle(color: Color.fromRGBO(20, 51, 51, 1)),
        bodyText2: TextStyle(color: Color.fromRGBO(20, 51, 51, 1)),
      ),
    ),
    home: TabsScreen(favouriteMeals),
    );
  }

标签: flutterdart

解决方案


请试试这个。

Widget build(BuildContext context) {
return Builder(builder:(ctx){
ScreenUtil.init(ctx);
 return  MaterialApp(
    title: 'Meals App',
    theme: ThemeData(
      primarySwatch: Colors.pink,
      accentColor: Colors.amber,
      canvasColor: Color.fromRGBO(255, 254, 229, 1),
      fontFamily: 'Raleway',
      textTheme: TextTheme(
        headline6: TextStyle(
          fontSize: ScreenUtil().setSp(100),
          fontFamily: 'RobotoCondensed',
          fontWeight: FontWeight.bold,
        ),
        bodyText1: TextStyle(color: Color.fromRGBO(20, 51, 51, 1)),
        bodyText2: TextStyle(color: Color.fromRGBO(20, 51, 51, 1)),
      ),
    ),
    home: TabsScreen(favouriteMeals),
    );});
  }

这将使用新的 MediaQuery 引入新的上下文


推荐阅读