微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flutter:如何将文本小部件中心放在屏幕上

如何解决Flutter:如何将文本小部件中心放在屏幕上

我需要将标题'放在中间以适应任何屏幕,我知道我可以调整框的大小以在中心移动标题,但是当使用不同的设备时,尺寸肯定会改变并成为不同的标题地方。 这是代码

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),],));
  }
}

enter image description here

解决方法

你只需要像这样改变中心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',)

enter image description here

,

像这样使用填充

Padding(
      padding: EdgeInsets.symmetric(vertical: 5.h,horizontal: 3.h),child: Container(),);

https://pub.dev/packages/sizer阅读更多

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。