Flutter 在不使用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

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

此示例使用文本小部件

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