我通过触发 enddrawer 在 AppBar 中添加了一个按钮,它的作用正是我想要的。但是,我想在主体中添加另一个按钮来触发另一个抽屉,该抽屉也从右侧滑出。
我怎样才能实现这个目标?到目前为止,除了从左侧制作抽屉滑轨之外,我还没有找到任何解决方案。
Scaffold(
key: scaffoldKey
appBar: AppBar(actions: [
IconButton(
onPressed: () {
scaffoldKey.currentState!.openEndDrawer();
},
icon: const Icon(Icons.filter_alt_outlined))
],),
endDrawer: Drawer(...),
body: Column(
children: [
IconButton(
icon: Icon(Icons.sort),
onPressed:() {
// how to open another endDrawer here..
}
)
]
)
)
您可以使用两个
EndDrawer
选项实现 Flutter 应用程序的完整示例,您可以按照以下代码操作:
import 'package:flutter/material.dart';
class HomeScreen extends StatelessWidget {
final GlobalKey<ScaffoldState> scaffoldKey = GlobalKey<ScaffoldState>();
HomeScreen({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
key: scaffoldKey,
appBar: AppBar(
title: const Text("Dual EndDrawers"),
actions: [
IconButton(
onPressed: () {
scaffoldKey.currentState!.openEndDrawer();
},
icon: const Icon(Icons.filter_alt_outlined),
),
],
),
endDrawer: Drawer(
child: ListView(
children: [
ListTile(
title: const Text("First EndDrawer Option"),
onTap: () {
// Handle the action for the first EndDrawer here.
scaffoldKey.currentState!.openEndDrawer();
},
),
],
),
),
body: Column(
children: [
IconButton(
icon: const Icon(Icons.sort),
onPressed: () {
scaffoldKey.currentState!
.openEndDrawer(); // Open the first EndDrawer
},
),
],
),
);
}
}
希望这对您有帮助。