在屏幕上添加按钮,而无需使用MaterialApp扑

问题描述 投票:1回答:1

我试图让有在颤振屏幕中央可点击按钮简单的例子。我能做到这一点使用MaterialApp组件,但是我想这样做,而无需使用MaterialApp。

本例将文本小

import 'package:flutter/material.dart';

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

但我所有的试验,以改变与FlatButton或RaisedButton文本小部件失败,因为它们依赖于材料的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: () {
            },
          ),
          )
      )
  );
}

问题是:有什么办法可以有不依赖于材料件按钮?

flutter flutter-layout
1个回答
0
投票

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

按照Doc -

WidgetsApp,它定义了基本应用程序的元素,但不依赖于材料库。

enter image description here

更新 - 如果没有其他类:

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

如果既没有提供建设者,也不onGenerateRoute,必须指定pageRouteBuilder,这样的默认处理程序会知道建设一个什么样PageRoute过渡。

void main() {
  runApp(WidgetsApp(
    builder: (context, int) {
      return Center(
        child: RaisedButton(
          onPressed: () {},
          child: Text(
            'Hello, world!',
            textDirection: TextDirection.ltr,
          ),
        ),
      );
    },
    color: Colors.blue,
  ));
}
© www.soinside.com 2019 - 2024. All rights reserved.