如何解决Flutter-是否有必要使用预定义的根窗口小部件之一启动每个App?
这可能是一个愚蠢的问题,但是我对flutter完全陌生,我正在使用Flutter玩macOS桌面应用程序。 我不想遵循任何设计规则,而只是在玩基本布局。
我的问题:是否需要使用预定义的根窗口小部件之一启动每个App?
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,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 Engine准备渲染新框架时
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。