问题描述
我需要将标题'放在中间以适应任何屏幕,我知道我可以调整框的大小以在中心移动标题,但是当使用不同的设备时,尺寸肯定会改变并成为不同的标题地方。 这是代码:
class NotificationDoctor extends StatelessWidget {
TextStyles textStyles = TextStyles.heading;
Texts texts;
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Container(
decoration: Boxdecoration(
color: Theme.of(context).primaryColorDark,borderRadius: BorderRadius.only(bottomLeft: Radius.circular(15.0))),height: 130.h,child: Padding(
padding: EdgeInsets.only(top: 40.h),child: Column(
mainAxisAlignment: MainAxisAlignment.center,children: [
Padding(
padding: EdgeInsets.only(
right: 15.w,top: 15.h,),child: Row(
crossAxisAlignment: CrossAxisAlignment.center,mainAxisAlignment: MainAxisAlignment.start,children: [
FlatButton(
child: ArrowIcon(
arrowColor: Color(0xFFEEF4F9),backgroundColor:
Theme.of(context).primaryColor.withOpacity(.9),onpressed: () {
Navigator.pop(context);
},// SizedBox(
// width: 55,// ),Center(
child: Texts(
'Notifications',style: TextStyles.heading,color: Color(0xFFEEF4F9),],));
}
}
解决方法
你只需要像这样改变中心的mainAxisAlignment
mainAxisAlignment: MainAxisAlignment.center,
完整代码
Row(
crossAxisAlignment: CrossAxisAlignment.center,mainAxisAlignment: MainAxisAlignment.center,children: [
// SizedBox(
// width: 55,// ),Center(
child: Text(
'Notifications',),],
如果您只希望标题居中,则使用 Stack
小部件并将标题小部件包装在 Align
小部件中,如下所示
Stack(
children: [
Padding(
padding: const EdgeInsets.only(left: 8.0),child: Icon(Icons.arrow_back),// icon,Align(
alignment: Alignment.center,child: Text(
'Notifications',)
,
像这样使用填充
Padding(
padding: EdgeInsets.symmetric(vertical: 5.h,horizontal: 3.h),child: Container(),);