Android 颤振-如何使SnackBar不向上推浮动操作按钮?
如何使Android 颤振-如何使SnackBar不向上推浮动操作按钮?,android,flutter,floating-action-button,android-snackbar,Android,Flutter,Floating Action Button,Android Snackbar,如何使Snackbar与FloatingActionButton重叠,并且在弹出时不向上推?我附上了我的简化代码以供参考。先谢谢你 class Screen extends StatefulWidget{ @override State<StatefulWidget> createState() => ScreenState(); } class ScreenState extends State<Screen>{ BuildContext con
Snackbar
与FloatingActionButton
重叠,并且在弹出时不向上推?我附上了我的简化代码以供参考。先谢谢你
class Screen extends StatefulWidget{
@override
State<StatefulWidget> createState() => ScreenState();
}
class ScreenState extends State<Screen>{
BuildContext context;
@override
Widget build(BuildContext context) => Scaffold(
floatingActionButton: FloatingActionButton(
onPressed: action,
),
body: Builder(
builder : (BuildContext context){
this.context = context;
return Container();
}
)
);
action() => Scaffold.of(context).showSnackBar(SnackBar(
duration: Duration(milliseconds : 1000),
content: Container(height: 10)
));
}
类屏幕扩展StatefulWidget{
@凌驾
State createState()=>ScreenState();
}
类ScreenState扩展了状态{
构建语境;
@凌驾
小部件构建(构建上下文)=>Scaffold(
浮动操作按钮:浮动操作按钮(
记者:行动,
),
车身:建造商(
生成器:(BuildContext上下文){
this.context=上下文;
返回容器();
}
)
);
action()=>Scaffold.of(context).showSnackBar(SnackBar(
持续时间:持续时间(毫秒:1000),
内容:容器(高度:10)
));
}
您可以将SnackBar
的行为
属性设置为SnackBarBehavior.floating
,该属性将在其他小部件上方显示SnackBar
这应该可以-
class Screen extends StatefulWidget{
@override
State<StatefulWidget> createState() => ScreenState();
}
class ScreenState extends State<Screen>{
BuildContext context;
@override
Widget build(BuildContext context) => Scaffold(
floatingActionButton: FloatingActionButton(
onPressed: action,
),
body: Builder(
builder : (BuildContext context){
this.context = context;
return Container();
}
)
);
action() => Scaffold.of(context).showSnackBar(SnackBar(
duration: Duration(milliseconds : 1000),
content: Container(height: 10)
behavior: SnackBarBehavior.floating, // Add this line
));
}
类屏幕扩展StatefulWidget{
@凌驾
State createState()=>ScreenState();
}
类ScreenState扩展了状态{
构建语境;
@凌驾
小部件构建(构建上下文)=>Scaffold(
浮动操作按钮:浮动操作按钮(
记者:行动,
),
车身:建造商(
生成器:(BuildContext上下文){
this.context=上下文;
返回容器();
}
)
);
action()=>Scaffold.of(context).showSnackBar(SnackBar(
持续时间:持续时间(毫秒:1000),
内容:容器(高度:10)
行为:SnackBarBehavior.floating,//添加此行
));
}
有关更多信息,请参见链接。您可以将
SnackBar
的行为属性设置为SnackBarBehavior.floating
,该属性将在其他小部件上方显示SnackBar
这应该可以-
class Screen extends StatefulWidget{
@override
State<StatefulWidget> createState() => ScreenState();
}
class ScreenState extends State<Screen>{
BuildContext context;
@override
Widget build(BuildContext context) => Scaffold(
floatingActionButton: FloatingActionButton(
onPressed: action,
),
body: Builder(
builder : (BuildContext context){
this.context = context;
return Container();
}
)
);
action() => Scaffold.of(context).showSnackBar(SnackBar(
duration: Duration(milliseconds : 1000),
content: Container(height: 10)
behavior: SnackBarBehavior.floating, // Add this line
));
}
类屏幕扩展StatefulWidget{
@凌驾
State createState()=>ScreenState();
}
类ScreenState扩展了状态{
构建语境;
@凌驾
小部件构建(构建上下文)=>Scaffold(
浮动操作按钮:浮动操作按钮(
记者:行动,
),
车身:建造商(
生成器:(BuildContext上下文){
this.context=上下文;
返回容器();
}
)
);
action()=>Scaffold.of(context).showSnackBar(SnackBar(
持续时间:持续时间(毫秒:1000),
内容:容器(高度:10)
行为:SnackBarBehavior.floating,//添加此行
));
}
有关更多信息,请参阅链接。只需使用多个Scaffold
s。把里面的包起来,外面的包起来。使用inner来放置属于它的所有内容,主体
,应用栏
,底部导航栏
,浮动操作按钮
等等。从外部的body
的BuildContext
调用showSnackBar
。如果有,从内向外移动抽屉
,使其保持在小吃条
上方
如果您喜欢像经典祝酒词一样弹出SnackBar
,请参阅Siddharth Patankar的答案。也谢谢你
下面是我答案的简化代码
@override
Widget build(BuildContext context) => Scaffold(
drawer : Drawer(child: Container()),
body: Builder(
builder : (BuildContext context){
this.context = context;
return Scaffold(
body: Container(),
floatingActionButton: FloatingActionButton(
onPressed: () => Scaffold.of(context).showSnackBar(SnackBar(
duration: Duration(milliseconds : 1000),
content: Container(height: 30),
)),
),
);
}
)
);
只需使用多个Scaffold
s。把里面的包起来,外面的包起来。使用inner来放置属于它的所有内容,主体
,应用栏
,底部导航栏
,浮动操作按钮
等等。从外部的body
的BuildContext
调用showSnackBar
。如果有,从内向外移动抽屉
,使其保持在小吃条
上方
如果您喜欢像经典祝酒词一样弹出SnackBar
,请参阅Siddharth Patankar的答案。也谢谢你
下面是我答案的简化代码
@override
Widget build(BuildContext context) => Scaffold(
drawer : Drawer(child: Container()),
body: Builder(
builder : (BuildContext context){
this.context = context;
return Scaffold(
body: Container(),
floatingActionButton: FloatingActionButton(
onPressed: () => Scaffold.of(context).showSnackBar(SnackBar(
duration: Duration(milliseconds : 1000),
content: Container(height: 30),
)),
),
);
}
)
);
非常感谢。很好的解决方案。有什么方法可以使它重叠吗?你能详细说明一下你所说的重叠是什么意思吗?因为我提供的解决方案已经在其他小部件上面显示了SnackBar
。就我所知,像在堆栈中一样重叠,它不可能直接使用SnackBar
小部件。您可能需要为此创建自己的自定义小部件,然后将其包装在堆栈中。此外,根据谷歌官方的说法,不建议使用重叠的SnackBar
。此外,如果我的答案解决了您的问题,请单击大复选框接受它作为答案。干杯非常感谢。很好的解决方案。有什么方法可以使它重叠吗?你能详细说明一下你所说的重叠是什么意思吗?因为我提供的解决方案已经在其他小部件上面显示了SnackBar
。就我所知,像在堆栈中一样重叠,它不可能直接使用SnackBar
小部件。您可能需要为此创建自己的自定义小部件,然后将其包装在堆栈中。此外,根据谷歌官方的说法,不建议使用重叠的SnackBar
。此外,如果我的答案解决了您的问题,请单击大复选框接受它作为答案。干杯