找不到 RaisedButton
时间: 2024-05-07 19:18:36 浏览: 45
如果你正在使用 Flutter,那么 RaisedButton 已经被弃用,可以使用 ElevatedButton 来代替。如果你仍然想使用 RaisedButton,你需要在 pubspec.yaml 文件中添加一个依赖,如下所示:
```
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^0.1.2
flutter_button: ^1.0.0
```
然后在你的代码中导入 RaisedButton:
```
import 'package:flutter/material.dart';
RaisedButton(
onPressed: () {},
child: Text('RaisedButton'),
);
```
然而,如果你使用的是 Flutter 2.0 或更高版本,RaisedButton 已经被移除,你需要使用 ElevatedButton 或 TextButton。例如:
```
import 'package:flutter/material.dart';
ElevatedButton(
onPressed: () {},
child: Text('ElevatedButton'),
);
TextButton(
onPressed: () {},
child: Text('TextButton'),
);
```
相关问题
你发我的这个例子要报错RaisedButton找不到是为什么
出现RaisedButton找不到的错误通常是因为你的代码中使用的Flutter版本过低,RaisedButton在较新的Flutter版本中已经被替换为ElevatedButton。你可以尝试更新你的Flutter版本或者将代码中的RaisedButton改为ElevatedButton来解决这个问题。
showModalBottomSheet 获取不到 Scaffold
在调用 `showModalBottomSheet` 方法时,需要传入一个 `BuildContext` 参数。如果你在 `Scaffold` 中调用 `showModalBottomSheet`,那么你可以直接使用 `Scaffold.of(context)` 来获取到当前的 `Scaffold`,进而调用它的方法或属性。但是,如果你在 `Scaffold` 之外调用 `showModalBottomSheet`,那么 `Scaffold.of(context)` 将会返回 null,因为它没有找到最近的 `Scaffold`。
解决这个问题的方法有以下两种:
1. 在 `showModalBottomSheet` 方法中传入一个 `builder` 参数,通过 `builder` 方法返回一个新的 `Scaffold`,然后在 `builder` 方法中使用 `BuildContext` 参数来获取当前的 `Scaffold`。示例代码如下:
```
showModalBottomSheet(
context: context,
builder: (BuildContext context) {
final scaffold = Scaffold.of(context);
// 在这里使用 scaffold
return Container();
},
);
```
2. 在 `Scaffold` 中定义一个 `GlobalKey`,然后在 `showModalBottomSheet` 中传入该 `GlobalKey`,通过 `currentState` 属性来获取当前的 `Scaffold`。示例代码如下:
```
final _scaffoldKey = GlobalKey<ScaffoldState>();
@override
Widget build(BuildContext context) {
return Scaffold(
key: _scaffoldKey,
body: Center(
child: RaisedButton(
onPressed: () {
showModalBottomSheet(
context: context,
builder: (BuildContext context) {
final scaffold = _scaffoldKey.currentState;
// 在这里使用 scaffold
return Container();
},
);
},
child: Text('Show bottom sheet'),
),
),
);
}
```
阅读全文