Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 如何在颤振中垂直和水平居中文本?_User Interface_Text_Widget_Alignment_Flutter - Fatal编程技术网

User interface 如何在颤振中垂直和水平居中文本?

User interface 如何在颤振中垂直和水平居中文本?,user-interface,text,widget,alignment,flutter,User Interface,Text,Widget,Alignment,Flutter,我想知道如何在flatter中垂直和水平地将文本小部件的内容居中。 我只知道如何使用center(child:Text(“test”))将小部件本身居中,而不知道内容本身。默认情况下,它与左侧对齐。在Android中,我相信实现这一点的TextView的属性称为gravity 我想要的示例: 您可以使用Text构造函数的textaalign属性 Text("text", textAlign: TextAlign.center,) 文本对齐中心特性设置仅用于水平对齐 我使用下面的代码将文本设置

我想知道如何在flatter中垂直和水平地将文本小部件的内容居中。 我只知道如何使用
center(child:Text(“test”))
将小部件本身居中,而不知道内容本身。默认情况下,它与左侧对齐。在Android中,我相信实现这一点的TextView的属性称为
gravity

我想要的示例:


您可以使用
Text
构造函数的
textaalign
属性

Text("text", textAlign: TextAlign.center,)

文本对齐中心特性设置仅用于水平对齐

我使用下面的代码将文本设置为垂直和水平居中

代码:


我认为一个更灵活的选择是使用
Align()
包装
Text()
,如下所示:

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


使用
Center()
似乎完全忽略了文本小部件上的
TextAlign
。它不会对齐
TextAlign.left
TextAlign.right
如果您尝试,它将保持在中间

在SizedBox中心的文本元素以更好的方式工作,如下示例代码所示

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
);
}
小部件构建(构建上下文){
返回原材料按钮(
fillColor:Colors.green,
splashColor:Colors.greenAccent,
形状:新的CircleBorder(),
孩子:填充(
填充:所有边缘设置(10.0),
孩子:排(
mainAxisSize:mainAxisSize.min,
儿童:[
大小盒子(
宽度:100.0,
高度:100.0,
儿童:中心(
子:文本(
widget.buttonText,
maxLines:1,
样式:TextStyle(颜色:Colors.white)
),
)
)]
),
),
onPressed:widget.onPressed
);
}

享受编码将文本放在中间:

Container(
      height: 45,
      color: Colors.black,
      child: Center(
        child: Text(
            'test',
            style: TextStyle(color: Colors.white),
        ),
      ),
    );

这对我来说是最好的结果。

如果您是intellij IDE用户,您可以使用快捷键
Alt+Enter
,然后选择
Wrap with Center
,然后添加
textAlign:textAlign.Center

概述:我使用Flex小部件使用MainAxisAlignment.Center沿水平轴将页面上的文本居中。我使用容器填充在文本周围创建一个空白空间

  Flex(
            direction: Axis.horizontal,
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
                Container(
                    padding: EdgeInsets.all(20),
                    child:
                        Text("No Records found", style: NoRecordFoundStyle))
  ])

也许你想为2个集装箱提供相同的宽度和高度

Container(
            width: size.width * 0.30, height: size.height * 0.4,
            alignment: Alignment.center,
            decoration: BoxDecoration(
              borderRadius: BorderRadius.circular(6)
            ),
            child: Center(
              child: Text(categoryName, textAlign: TextAlign.center, style: TextStyle(
                fontWeight: FontWeight.bold,
                fontSize: 17,
                color: Colors.white,
              ),),
            ),

我不确定为什么会将其标记为答案,因为这只会使文本水平居中,但问题要求水平和垂直。是的,这应该被删除,它不会回答问题。@Shelly在某些情况下它不起作用。您还需要添加heightFactor:属性,例如:Center(高度系数:2.3,子项:Text('SELFIE',textAlign:textAlign.center,style:TextStyle(fontSize:18.0,颜色:Colors.black,fontWeight:fontWeight.bold,) ), ),我看了一眼,同意了。更改为正确答案,因为它水平和垂直居中。更好的答案是这个。这应该是有标记的答案,因为问题是关于如何水平和垂直居中文本。谢谢!这是答案,伙计们,只是想知道为什么我的文本没有与更大的字体s对齐ize,原来中间的文字很奇怪,中间有一个断点,它会忽略文字大小。Align似乎没有这个问题…爱你,这绝对是我的一天。我一直尝试使用IDE包装,但没有想到上下文菜单。谢谢你!欢迎你。希望你能节省时间!
  Flex(
            direction: Axis.horizontal,
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
                Container(
                    padding: EdgeInsets.all(20),
                    child:
                        Text("No Records found", style: NoRecordFoundStyle))
  ])
Container(
            width: size.width * 0.30, height: size.height * 0.4,
            alignment: Alignment.center,
            decoration: BoxDecoration(
              borderRadius: BorderRadius.circular(6)
            ),
            child: Center(
              child: Text(categoryName, textAlign: TextAlign.center, style: TextStyle(
                fontWeight: FontWeight.bold,
                fontSize: 17,
                color: Colors.white,
              ),),
            ),