【问题标题】:cupertino equivalent of `Material`库比蒂诺相当于“材料”
【发布时间】:2021-10-12 01:53:24
【问题描述】:

我在互联网上对 Material 小部件在颤振中的使用进行了长期研究(我认为这是恶作剧),任何颤振开发人员都面临 No Material widget found. 异常,即使在使用 Cupertino 设计小部件时也是如此。

一个简单的例子是

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

class Example extends StatelessWidget {
  const Example({Key key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return CupertinoPageScaffold(
      navigationBar: CupertinoNavigationBar(
        middle: Text('Example'),
        leading: IconButton(
          onPressed: () {},
          icon: Icon(
            Icons.close,
            color: Colors.black54,
          ),
        ),
      ),
      child: Center(
        child: IconButton(
          onPressed: () {},
          icon: Icon(
            Icons.close,
            color: Colors.black54,
          ),
        ),
      ),
    );
  }
}

navigationBarbody IconButton 都不起作用,导致相同的异常。

当遇到这个异常时,我总是将它包装在 Material 中以绕过它,但我认为这样做是错误的。IconButton 不是唯一的小部件,我搜索了很多都无济于事。

请告诉我我错过了什么?并提前致谢。

【问题讨论】:

  • @Faizan Darwesh 和@JaffaKetchup 没有人知道颤振不知道MaterialApp 问题是它的替换和它的后代像Material 因为有很多非物质小部件取决于他们喜欢IconButton
  • 我也有同样的问题。当我使用MaterialApp => CupertinoTabScaffold 并使用TextField 时,它会显示像这样的错误 TextField 小部件需要由本地化小部件祖先提供 MaterialLocalizations。材料库使用本地化来生成消息、标签和缩写。。任何人有任何解决方案?谢谢。

标签: flutter material-design flutter-cupertino


【解决方案1】:

不确定 Cupertino 部分,但是(afaik)您需要将您的应用包装在 MaterialApp() 中以访问 Material 小部件和其他方法等。

【讨论】:

    【解决方案2】:

    您需要将根 Widget 包装在 MaterialApp() 中,以便您可以访问 Material 组件。

    例如,

    import 'package:flutter/material.dart';
    
    void main() {
      runApp(MyApp());
    }
    
    class MyApp extends StatelessWidget {
      // This widget is the root of your application.
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'Flutter Demo',
          theme: ThemeData(
            primarySwatch: Colors.blue,
          ),
          home: MyHomePage(title: 'Flutter Demo Home Page'),
        );
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-10-01
      • 1970-01-01
      • 2021-03-29
      • 2020-08-24
      • 2019-08-05
      • 1970-01-01
      • 1970-01-01
      • 2015-04-17
      • 2020-11-13
      相关资源
      最近更新 更多