我正在尝试创建一个没有 Scaffold 元素的 Material design 应用程序:这是纯粹的默认应用程序:
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
void _incrementCounter() {
setState(() {
_counter++;
});
}
@override
Widget build(BuildContext context) {
return Text(widget.title);
}
}
结果是:
如何解决这个问题并在没有脚手架的情况下使用材质样式?
Answer:
我需要使用Material
小部件。作为 Flutter 的初学者,我已经阅读了 Material design 教程,并且所有这些教程都使用Scaffold
小部件。感谢您指出Material
评论中的小部件。
没有脚手架,它就无法工作。
我认为您不明白脚手架是什么以及它的行为是怎样的?
Scaffold是一个小部件,它为您的屏幕/路由提供类似于 Android/iOS 屏幕的默认行为,如 AppBar、Body、Title、FloatingActionButton、Drawer 等。
这样您就不必为自己创建一个新的结构。
如果您不使用脚手架,那么您的页面将像一个普通的主体结构一样,您必须根据您的要求填充自定义小部件。
对于前:
在android中,任何Activity都会有一个默认的ActionBar。但是,如果您使用NoActionBarActivity,那么Activity将在没有actionBar的情况下显示。
Even Scaffold以类似的方式工作。
更新方法:
@override
Widget build(BuildContext context) {
return Material(child: Center(child: Text(widget.title,)),color: Colors.white,);
}
你需要使用材质小部件使用 Scaffold 时,作为父级以类似的方式操作子级部件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)