Flutter 在集团模式上打开抽屉
经过几天解决这个问题,我不能 我在我的应用程序上实现了简单的blok模式,我想通过按Flutter 在集团模式上打开抽屉,flutter,flutter-layout,bloc,Flutter,Flutter Layout,Bloc,经过几天解决这个问题,我不能 我在我的应用程序上实现了简单的blok模式,我想通过按FloatingActionButton或图标打开抽屉。菜单图标,但我的代码是 Scaffold.of(context).openDrawer(); 不工作 我的代码: return Scaffold( body: BlocBuilder<HomeEvent, HomeState>( bloc: _homeBloc, builder: (BuildContext cont
FloatingActionButton
或图标打开抽屉
。菜单
图标,但我的代码是
Scaffold.of(context).openDrawer();
不工作
我的代码:
return Scaffold(
body: BlocBuilder<HomeEvent, HomeState>(
bloc: _homeBloc,
builder: (BuildContext context, HomeState state) {
Scaffold.of(context).openDrawer(); //<---- don't work
if (state is HandleDrawerMenuClick) {
_onWidgetDidBuild(() {
Scaffold.of(context).openDrawer(); //<---- don't work
_showToast(context); //<---- work fine
});
}
return WillPopScope(
onWillPop: () {
customPop(context);
},
child: Directionality(
textDirection: TextDirection.rtl,
child: Scaffold(
primary: true,
appBar: ApplicationToolbar(homeBloc: _homeBloc),
floatingActionButton: FloatingActionButton(
child: Icon(Icons.add),
onPressed: () {
Scaffold.of(context).openDrawer(); //<---- don't work
_showToast(context); //<---- work fine
},
),
floatingActionButtonLocation:
FloatingActionButtonLocation.centerDocked,
bottomNavigationBar: AppBottomNavigationBar(),
drawer: AppDrawer(),
body: _fragments[_currentIndex],
),
),
);
}),
);
HomeState
class:
class HomeEvent extends Equatable{
HomeEvent([List props = const []]) : super(props);
}
class OnDrawerMenuClicked extends HomeEvent {
@override
String toString() => 'OnDrawerMenuClicked clicked';
}
class OnDrawerMenuItemsClicked extends HomeEvent {
var onItem = 1;
OnDrawerMenuItemsClicked({this.onItem});
@override
String toString() => 'OnDrawerMenuItemsClicked clicked';
}
class HomeState extends Equatable{
HomeState([List props = const[]]):super(props);
}
class HomeInitial extends HomeState{
@override
String toString()=>'HomeInitial';
}
class HandleDrawerMenuClick extends HomeState{
@override
String toString()=>'HandleDrawerMenuClick';
}
用块状图案打开抽屉太复杂了。您需要用一个生成器小部件包装
FloatingActionButton
,该小部件将为您打开抽屉提供正确的上下文,并且它将在不需要使用Bloc模式的情况下打开
s使用FAB打开抽屉的简单代码
return Scaffold(
appBar: AppBar(title: Text('Drawer FAB'),),
drawer: Drawer(child: Text('drawer content'),),
floatingActionButton: Builder( builder:(context) =>
FloatingActionButton(child: Icon(Icons.add),
onPressed: (){
Scaffold.of(context).openDrawer();
},
)),
);
若我在别的班上有appbar怎么能打开抽屉?例如,在分离的appBar中,我的
自动加载
是错误的
,我想使用自定义图标并单击打开抽屉的原因,但我并不真正理解这个问题。即使automaticallyImplyLeading
为false,您仍然可以通过单击按钮打开抽屉是的,我确定可以单击该按钮,但是当我将automaticallyImplyLeading
设置为false时,抽屉无法打开,因为automaticallyImplyLeading
导致此情况的原因,如果true
,这很奇怪。即使设置为false,它也会在我的中打开。请让我再次检查