库比蒂诺相当于“材料”

Posted

技术标签:

【中文标题】库比蒂诺相当于“材料”【英文标题】: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。材料库使用本地化来生成消息、标签和缩写。。任何人有任何解决方案?谢谢。 【参考方案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'),
    );
  

【讨论】:

以上是关于库比蒂诺相当于“材料”的主要内容,如果未能解决你的问题,请参考以下文章

flutter系列之:Material主题的基础-MaterialApp

主题颜色材料设计与角度材料

角材料有网格系统吗?

在模拟器中使用真实的位置服务

STD是啥材质

杂项-公司:Apple