Flutter MediaQuery 为 iOS 上的底部导航添加了额外的底部填充

问题描述

我正在使用 MediaQuery 禁用文本比例因子,以便手机设置中的字体大小更改不会更改应用中的文本大小。

它仅在 iOS 上发生。

代码如下:

class MainPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    MainBloc mainBloc = BlocProvider.of<MainBloc>(context);
    NewsBloc newsBloc = BlocProvider.of<NewsBloc>(context);

    List<Widget> pages = getPages(newsBloc);

    return SafeArea(
      child: MediaQuery(
        data: MediaQuery.of(context).copyWith(textScaleFactor: 1),child: BlocBuilder(
            cubit: mainBloc,builder: (context,state) {
              if (state is Pagedisplayed) {
                return buildPages(mainBloc,state,pages);
              }
              return Center(
                child: Text('Something went wrong.'),);
            }),),);
  }

您可以在此处查看结果。

enter image description here

当我删除 MediaQuery 时,就可以了。

class MainPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    MainBloc mainBloc = BlocProvider.of<MainBloc>(context);
    NewsBloc newsBloc = BlocProvider.of<NewsBloc>(context);

    List<Widget> pages = getPages(newsBloc);

    return SafeArea(
      child: BlocBuilder(
          cubit: mainBloc,state) {
            if (state is Pagedisplayed) {
              return buildPages(mainBloc,pages);
            }
            return Center(
              child: Text('Something went wrong.'),);
          }),);

这是结果。

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)