gpt4 book ai didi

flutter - 在不使用 MaterialApp Flutter 的情况下在屏幕上添加按钮

转载 作者:IT王子 更新时间:2023-10-29 07:04:35 27 4
gpt4 key购买 nike

我试图做一个简单的例子,在 Flutter 的屏幕中央有一个可点击的按钮。我可以使用 MaterialApp 小部件来做到这一点,但我想在不使用 MaterialApp 的情况下做到这一点。

此示例适用于文本小部件

import 'package:flutter/material.dart';

void main() {
runApp(
Center(
child: Text(
'Hello, world!',
textDirection: TextDirection.ltr,
),
),
) ;
}

但是我所有尝试使用 FlatButton 或 RaisedButton 更改 Text 小部件的尝试都失败了,因为它们依赖于 Material Widget

我也试过:

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: () {
},
),
)
)
);
}

问题是:有没有办法让Button不依赖于Material Widget?

最佳答案

然后你必须使用 - 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,
);
}
}

根据文档 -

WidgetsApp, which defines the basic app elements but does not depend on the material library.

enter image description here

更新-没有其他类:

如果您使用home:,那么您需要传递-onGenerateRoutepageRouteBuilder

If neither builder nor onGenerateRoute are provided, the pageRouteBuilder must be specified so that the default handler will know what kind of PageRoute transition to build.

void main() {
runApp(WidgetsApp(
builder: (context, int) {
return Center(
child: RaisedButton(
onPressed: () {},
child: Text(
'Hello, world!',
textDirection: TextDirection.ltr,
),
),
);
},
color: Colors.blue,
));
}

关于flutter - 在不使用 MaterialApp Flutter 的情况下在屏幕上添加按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54548888/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com