Flutter:我怎样才能将文本小部件中心放在屏幕上
Flutter: How can i put the text widget center in screen
我需要将标题'放在中间以适应任何屏幕,我知道我可以调整框的大小以将标题移到中间,但是当使用不同的设备时尺寸肯定会改变并成为标题不同的地方。
这是代码:
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),
),
),
],
),
),
],
),
),
),
));
}
}
像这样使用填充
Padding(
padding: EdgeInsets.symmetric(vertical: 5.h, horizontal: 3.h),
child: Container(),
);
阅读更多内容
您只需像这样中心更改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',
),
),
],
)
我需要将标题'放在中间以适应任何屏幕,我知道我可以调整框的大小以将标题移到中间,但是当使用不同的设备时尺寸肯定会改变并成为标题不同的地方。 这是代码:
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),
),
),
],
),
),
],
),
),
),
));
}
}
像这样使用填充
Padding(
padding: EdgeInsets.symmetric(vertical: 5.h, horizontal: 3.h),
child: Container(),
);
阅读更多内容
您只需像这样中心更改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',
),
),
],
)