嗨。如何更改文本位置。我想更改个人信息文本与名字一致。我尝试使用Widget填充,但不起作用。
密码
Container(
width: double.infinity,
color: Colors.white,
//margin: EdgeInsets.fromLTRB(10, 0, 10, 10),
padding: EdgeInsets.all(15),
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center, <=
children: [
/* SizedBox(
height: 30,
),*/
Align(
alignment: Alignment.centerLeft,
child: Text(
'Personal Information',
style: TextStyle(
color: Colors.black, fontSize: 18,),
),
),
Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(height: 35),
Container(
width:
MediaQuery.of(context).size.width >= 1000
? 1000
: MediaQuery.of(context).size.width,
child: Column(
children: [
Row(
children: <Widget>[
Expanded(
child: Column(
mainAxisAlignment:
MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
SizedBox(
height: 25,
child: Text(
'First Name',
style: TextStyle(
fontWeight:
FontWeight.bold),
),
),
SizedBox(
width: 400,
child: TextFormField(
style: const TextStyle(
color: Colors.black),
controller: firstName,
onSaved: (String? value) {
firstName.text = value!;
},
decoration:
const InputDecoration(
border:
OutlineInputBorder(
borderSide: BorderSide(
width: 1,
color:
Color.fromRGBO(
217,
217,
217,
1)),
),
hintText: '* First Name',
hintStyle: TextStyle(
color: Colors.grey,
fontSize: 16),
),
),
)
],
),
),
),
如果更改crossAxisAlignment:CrossAxisAlignment.center,到CrossAxisAlignment.start我的TextFormField也改变了。有人能帮我吗?
2条答案
按热度按时间txu3uszq1#
你正在使用多列,这是导致这一点。从代码中我不明白为什么我们需要多列。你可以创建一个单一的列作为容器的子控件,并相应地样式化子控件。这将是实现它的最佳方式。
您可以将alignment属性赋予父容器。如果子控件遵循不同的样式,则更新子控件的样式。
xjreopfe2#
删除第二个
Column
,并将其子元素放在第一个中。然后在列上使用Align
小部件将其带到中心。或者您可以尝试将alignment
参数赋予Container,对此我不太确定。层次结构如下: