Android 如何在整个应用程序中使用FloatActionButton
我有这段代码并在我的一个页面中运行,但我想在整个应用程序中使用这部分代码,但我不知道如何使用?我不想使用Scaffold,因为当我在其他页面中使用它时,会因为运行2个Scaffold而产生问题,请帮助我如何在整个应用程序中使用此代码Android 如何在整个应用程序中使用FloatActionButton,android,flutter,flutter-layout,flutter-animation,flutter-test,Android,Flutter,Flutter Layout,Flutter Animation,Flutter Test,我有这段代码并在我的一个页面中运行,但我想在整个应用程序中使用这部分代码,但我不知道如何使用?我不想使用Scaffold,因为当我在其他页面中使用它时,会因为运行2个Scaffold而产生问题,请帮助我如何在整个应用程序中使用此代码 floatingActionButton:容器( 高度:100.0, 宽度:100.0, 装饰:盒子装饰( borderRadius:新的borderRadius.all(半径.圆形(60.0)), boxShadow:[ 箱形阴影( 颜色:颜色。黑色54, 半径:
floatingActionButton:容器(
高度:100.0,
宽度:100.0,
装饰:盒子装饰(
borderRadius:新的borderRadius.all(半径.圆形(60.0)),
boxShadow:[
箱形阴影(
颜色:颜色。黑色54,
半径:10.0,
偏移量:偏移量(0.0,0.75))
],
颜色:颜色,白色,
),
孩子:FittedBox(
子:浮动操作按钮(
背景颜色:颜色(0xffffcd05),
孩子:填充(
填充:常数边集全部(4.0),
子:Image.asset(
“images/logo express.png”,
高度:200.0,
宽度:300.0,
),
),
已按下:(){
var Router=new materialpage路由(生成器:(BuildContext){
返回新的首页();
});
导航器.of(上下文).push(路由器);
}),
),
//形状:
//图标:新图标(Icons.add,
//颜色:颜色(0xffd4351c),
//形状:RoundedRectangleBorder(borderRadius:borderRadius.all(半径.圆形(100.0)),
//子项:Image.asset(“images/logo express.png”,高度:200.0,宽度:400.0,),
),
floatingActionButtonLocation:floatingActionButtonLocation.centerDocked,
bottomNavigationBar:BottomAppBar(
//clipBehavior:Clip.antiAlias,
颜色:颜色(0xffd4351c),
//形状:CircularNotchedRectangle(),
孩子:新的一排(
mainAxisSize:mainAxisSize.min,
//mainAxisAlignment:mainAxisAlignment.space,
儿童:[
//SizedBox(宽度:双无限,高度:70.0,),
材料(
孩子:大小盒子(
//宽度:double.infinity,
身高:60.0,
),
颜色:颜色(0xffd4351c),
),
//SizedBox(),
FlatButton.icon(
已按下:(){
Navigator.push(上下文、SlideRightRoute(第页:ContactUs());
},
图标:图标(
Icons.phone_in_talk,
颜色:颜色,白色,
),
标签:新文本(
“联系我们”,
样式:TextStyle(颜色:Colors.white),
),
填充:从LTRB(10.0,0,0,0)开始的边缘设置,
),
FlatButton.icon(
已按下:(){
push(上下文,SlideLeftRoute(page:AboutUs());
},
图标:图标(
一个人,
颜色:颜色,白色,
),
标签:新文本(
“关于我们”,
样式:TextStyle(颜色:Colors.white),
),
填充:来自LTRB(200,0,0.0,0)的边缘设置,
),
],
)),
);
}
}
类SlideRightRoute扩展PageRouteBuilder{
最终窗口小部件页面;
SlideRightRoute({this.page})
:超级(
页面生成器:(
构建上下文上下文,
动画,,
动画二级动画,
) =>
页
转换生成器:(
构建上下文上下文,
动画,,
动画二级动画,
孩子,
) =>
幻灯片转换(
位置:吐温(
开始:常量偏移量(-1,0),
结束:偏移0.0,
).制作动画(动画),
孩子:孩子,
),
);
}
类SlideLeftRoute扩展PageRouteBuilder{
最终窗口小部件页面;
SlideLeftRoute({this.page})
:超级(
页面生成器:(
构建上下文上下文,
动画,,
动画二级动画,
) =>
页
转换生成器:(
构建上下文上下文,
动画,,
动画二级动画,
孩子,
) =>
幻灯片转换(
位置:吐温(
开始:常数偏移量(1,0),
结束:偏移0.0,
).制作动画(动画),
孩子:孩子,
),
);
}
将其作为您的自定义小部件,如下所示
我的工厂飞镖:
import 'package:flutter/material.dart';
class MyFloatingActionButton extends StatelessWidget {
final VoidCallback onPressed;
const MyFloatingActionButton({Key key, this.onPressed}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
height: 100.0,
width: 100.0,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(60.0),
boxShadow: <BoxShadow>[
BoxShadow(
color: Colors.black54,
blurRadius: 10.0,
offset: Offset(0.0, 0.75),
)
],
color: Colors.white,
),
child: FittedBox(
child: FloatingActionButton(
backgroundColor: Color(0xffffcd05),
child: Padding(
padding: const EdgeInsets.all(4.0),
child: Image.asset(
"images/logo-express.png",
height: 200.0,
width: 300.0,
),
),
onPressed: onPressed,
),
),
);
}
}
将其作为您的自定义小部件,如下所示 我的工厂飞镖:
import 'package:flutter/material.dart';
class MyFloatingActionButton extends StatelessWidget {
final VoidCallback onPressed;
const MyFloatingActionButton({Key key, this.onPressed}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
height: 100.0,
width: 100.0,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(60.0),
boxShadow: <BoxShadow>[
BoxShadow(
color: Colors.black54,
blurRadius: 10.0,
offset: Offset(0.0, 0.75),
)
],
color: Colors.white,
),
child: FittedBox(
child: FloatingActionButton(
backgroundColor: Color(0xffffcd05),
child: Padding(
padding: const EdgeInsets.all(4.0),
child: Image.asset(
"images/logo-express.png",
height: 200.0,
width: 300.0,
),
),
onPressed: onPressed,
),
),
);
}
}
将浮动按钮小部件放在单独的类中,并在应用程序的不同部分使用此自定义小部件将浮动按钮小部件放在单独的类中,并在应用程序的不同部分使用此自定义小部件
floatingActionButton: MyFloatingActionButton(
onPressed: () {
var Router = new MaterialPageRoute(builder: (BuildContext) {
return new FirstPage();
});
Navigator.of(context).push(Router);
},
),