How do I center text vertically and horizontally i

2020-05-20 04:52发布

I'd like to know how to center the contents a Text widget vertically and horizontally in Flutter. I only know how to center the widget itself using Center(child: Text("test")) but not the content itself, it's by default left aligned. In Android, I believe the property of a TextView that achieves this is called gravity.

Example of what I want:

centered text example

6条回答
成全新的幸福
2楼-- · 2020-05-20 05:26

Text alignment center property setting only horizontal alignment.

enter image description here

I used below code to set text vertically and horizontally center.

enter image description here

Code:

      child: Center(
        child: Text(
          "Hello World",
          textAlign: TextAlign.center,
        ),
      ),
查看更多
Animai°情兽
3楼-- · 2020-05-20 05:33

You can use TextAlign property of Text constructor.

Text("text", textAlign: TextAlign.center,)
查看更多
祖国的老花朵
4楼-- · 2020-05-20 05:38
                       child: Align(
                          alignment: Alignment.center,
                          child: Text(
                            'Text here',
                            textAlign: TextAlign.center,                          
                          ),
                        ),

This produced the best result for me.

查看更多
狗以群分
5楼-- · 2020-05-20 05:38

Put the Text in a Center:

Container(
      height: 45,
      color: Colors.black,
      child: Center(
        child: Text(
            'test',
            style: TextStyle(color: Colors.white),
        ),
      ),
    );
查看更多
相关推荐>>
6楼-- · 2020-05-20 05:42

I think a more flexible option would be to wrap the Text() with Align() like so:

Align(
  alignment: Alignment.center, // Align however you like (i.e .centerRight, centerLeft)
  child: Text("My Text"),
),

Using Center() seems to ignore TextAlign entirely on the Text widget. It will not align TextAlign.left or TextAlign.right if you try, it will remain in the center.

查看更多
看我几分像从前
7楼-- · 2020-05-20 05:50

Text element inside Center of SizedBox work much better way, below Sample code

Widget build(BuildContext context) {
    return RawMaterialButton(
      fillColor: Colors.green,
      splashColor: Colors.greenAccent,
      shape: new CircleBorder(),
      child: Padding(
        padding: EdgeInsets.all(10.0),
        child: Row(
          mainAxisSize: MainAxisSize.min,
          children: <Widget>[
            SizedBox(
              width: 100.0,
              height: 100.0,
              child: Center(
                child: Text(
                widget.buttonText,
                maxLines: 1,
                style: TextStyle(color: Colors.white)
              ),
              )
          )]
        ),
    ),
  onPressed: widget.onPressed
);
}

Enjoy coding

查看更多
登录 后发表回答