flutter - Flutter - 是否有必要使用预定义的根小部件之一启动每个应用程序?
问题描述
这可能是个愚蠢的问题,但我是 Flutter 的新手,我正在使用 Flutter 玩 macOS 的桌面应用程序。我不想遵循任何设计规则,我只是在玩基本的布局。
我的问题:是否有必要使用预定义的根小部件之一启动每个应用程序?
MaterialApp()
WidgetApp()
CupertinoApp()
我们的应用程序可以像下面的代码一样以 Container() 开头吗?
void main() {
runApp(
new Directionality(textDirection: TextDirection.ltr, child: MyApp())
);
}
// Root of App
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
var mainGrey = parseColor('#282828');
var dddColor = parseColor('#3e3e3e');
var rootWidget = Container(
decoration: BoxDecoration(gradient:
LinearGradient(begin: Alignment.topLeft,
end: Alignment.bottomRight,
colors: [mainGrey, dddColor], stops: [0.5, 1.0] )
),
//color: parseColor('#282828'),
//color:Color.fromRGBO(50, 50, 50, 0.5),
child: Column(
children: [
Expanded(child:
Container(child:
Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Flexible(
flex:1,
child: Container(
padding: const EdgeInsets.all(7),
decoration: BoxDecoration( border: Border.all(width: 1.0, color: Colors.blue[100])),
width: 200,
child: _myListMenu(context)
),
),
Expanded(
flex:3,
child: Center(child: MainView() )
),],),
)),
Container(//Bottom bar
height:30,
color:Colors.blue,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children:[Text('App Footer', textAlign: TextAlign.end,), ])
,)
]
),
);
return rootWidget;
}
}
它是完全糟糕的设计吗?或者我们可以像这样使用颤振吗?当然,我遇到了一些问题。缺少文本方向性,我无法访问 MediaQuery。
解决方案
当我们使用 Dart 编写 Flutter 应用程序时,我们仍处于 Flutter Framework 的级别(绿色)。
Flutter 框架通过一个名为 Window 的抽象层与 Flutter Engine(蓝色)进行交互。该抽象层公开了一系列 API 以与设备进行间接通信。
这也是通过这个抽象层,Flutter Engine 在以下情况下通知 Flutter 框架:
- 感兴趣的事件发生在设备级别(方向更改、设置更改、内存问题、应用程序运行状态……)
- 一些事件发生在玻璃层面(=手势)
- 平台通道发送一些数据
- 但也主要是,当 Flutter 引擎准备好渲染新帧时
推荐阅读
- javascript - 四舍五入到特定数字
- kubernetes - 在部署期间将秘密值注入 configmap,而不使用环境变量
- c# - 如何使用c#在某些文件处于打开模式时删除目录
- druid - 如何连接 Druid 和 ActiveMQ
- python - 无法验证域 yaml 文件
- printing - mvprintw 函数
- amazon-web-services - 如何限制 cognito 身份验证用户将 iot 策略附加到 cognito 身份?
- java - 使用带有 spring-boot 的 kotlin 时启用 Hystrix 会导致 NullPointerException
- java - 如何使用 Camel rest 获取 url 查询的 Map?
- excel - VBA 日期数组转置为字符串