要让ModalBottomSheetLayout在sheetContent中使用最新的状态,可以使用以下步骤:
以下是一个示例代码,演示了如何使用ModalBottomSheetLayout和最新的状态:
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: HomePage(),
);
}
}
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
bool showSheet = false;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('ModalBottomSheetLayout Example'),
),
body: Center(
child: RaisedButton(
child: Text('Show Modal Sheet'),
onPressed: () {
setState(() {
showSheet = true;
});
},
),
),
floatingActionButton: FloatingActionButton(
child: Icon(Icons.add),
onPressed: () {
setState(() {
showSheet = false;
});
},
),
floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat,
bottomSheet: showSheet
? ModalBottomSheetLayout(
builder: (BuildContext context) {
return Container(
height: 200,
child: SheetContent(),
);
},
)
: null,
);
}
}
class SheetContent extends StatefulWidget {
@override
_SheetContentState createState() => _SheetContentState();
}
class _SheetContentState extends State<SheetContent> {
int count = 0;
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'Count: $count',
style: TextStyle(fontSize: 24),
),
RaisedButton(
child: Text('Increment'),
onPressed: () {
setState(() {
count++;
});
},
),
],
);
}
}
在这个示例中,点击按钮将会显示一个包含计数器和一个增加计数器的按钮的ModalBottomSheetLayout。在按钮点击事件处理函数中,调用了setState()方法来更新计数器的值,并且在SheetContent中使用最新的计数器值来展示数据。
领取专属 10元无门槛券
手把手带您无忧上云