Flutter 在不使用MaterialApp颤振的情况下在屏幕上添加按钮
我试着做一个简单的例子,在颤振中屏幕中央有一个可点击的按钮。我可以使用MaterialApp小部件来实现这一点,但我想在不使用MaterialApp的情况下实现这一点 此示例使用文本小部件Flutter 在不使用MaterialApp颤振的情况下在屏幕上添加按钮,flutter,flutter-layout,Flutter,Flutter Layout,我试着做一个简单的例子,在颤振中屏幕中央有一个可点击的按钮。我可以使用MaterialApp小部件来实现这一点,但我想在不使用MaterialApp的情况下实现这一点 此示例使用文本小部件 import 'package:flutter/material.dart'; void main() { runApp( Center( child: Text( 'Hello, world!', textDirection: TextDirec
import 'package:flutter/material.dart';
void main() {
runApp(
Center(
child: Text(
'Hello, world!',
textDirection: TextDirection.ltr,
),
),
) ;
}
但我所有用FlatButton或RaisedButton更改文本小部件的尝试都失败了,因为它们依赖于材质小部件
我也试过:
import 'package:flutter/material.dart';
void main() {
runApp(
Container(
decoration: BoxDecoration(color: Colors.white),
child:Center(
child: RaisedButton(
child: const Text('Press meh', textDirection: TextDirection.ltr),
onPressed: () {
},
),
)
)
);
}
问题是:有没有办法让按钮不依赖于材质小部件 然后您必须使用-
WidgetsApp
void main() {
runApp(SomeText());
}
class SomeText extends StatelessWidget {
@override
Widget build(BuildContext context) {
return WidgetsApp(
builder: (context, int) {
return Center(
child: RaisedButton(
onPressed: () {},
child: Text(
'Hello, world!',
textDirection: TextDirection.ltr,
),
),
);
},
color: Colors.blue,
);
}
}
根据文件-
,它定义了基本的应用程序元素,但不依赖于
在材料库上
更新-不带其他类:
如果使用home:
则需要传递-onGenerateRoute
或pageRouteBuilder
如果未提供builder或onGenerateRoute,则
必须指定pageRouteBuilder,以便使用默认处理程序
知道要构建哪种页面路由转换
像那样?进口“包装:颤振/材料.省道”;void main(){runApp(Card(child:Center(child:FlatButton)(child:Text('Hello,world!',textDirection:textDirection.ltr,),),);}无法工作我们可以不使用单独的类来完成吗?我的意思是我尝试了以下操作,但出现了一个异常:void main(){runApp(WidgetsApp(home:Center(child:RaisedButton)(onPressed:(){},child:Text('Hello,world!',textDirection:textDirection.ltr,),);}谢谢,这很有效。但是我不明白为什么我们需要这个部分“builder:(context,int){return”因为这个小部件有一个条件-
'builder!=null | | ongeneraterout!=null | | | pageRouteBuilder!=null':
所以你可以定义它们中的任何一个来工作。我简单地使用了builder
void main() {
runApp(WidgetsApp(
builder: (context, int) {
return Center(
child: RaisedButton(
onPressed: () {},
child: Text(
'Hello, world!',
textDirection: TextDirection.ltr,
),
),
);
},
color: Colors.blue,
));
}