防止设备显示和字体大小影响Flutter中的应用字体

2exbekwf  于 2023-05-19  发布在  Flutter
关注(0)|答案(2)|浏览(197)

我能够解决保留应用程序的字体大小,即使设备使用更大的字体大小。我的问题沿着当用户也改变显示大小或设置文本为粗体,使我的应用程序字体太大。

这就是我现在所拥有的..

主.dart

....
child: MaterialApp(
  builder: (context, child) {
    return MediaQuery(
      data: MediaQuery.of(context).copyWith(
        textScaleFactor: 1.0,
      ),
      child: child!,
    );
  },
.....

我如何才能实现我的目标,即使用户改变显示大小也能保持字体大小?

vdgimpew

vdgimpew1#

我为前面的代码道歉,试试这个

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      builder: (context, child) {
        final originalTextScaleFactor = MediaQuery.of(context).textScaleFactor;
        final boldText = MediaQuery.boldTextOverride(context);

        final newMediaQueryData = MediaQuery.of(context).copyWith(
          textScaleFactor: originalTextScaleFactor.clamp(0.8, 1.0),
          boldText: boldText,
        );

        return MediaQuery(
          data: newMediaQueryData,
          child: child!,
        );
      },
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Retain Font Size'),
      ),
      body: Center(
        child: Text(
          'Hello, World!',
          style: TextStyle(fontSize: 20.0),
        ),
      ),
    );
  }
}
5cg8jx4n

5cg8jx4n2#

尝试使用flutter_screenutil包。它会解决你的问题。
也检查这个How to create responsive Text widget in Flutter?这可能会帮助你

相关问题