在标题和文本字段之间没有呈现填充?

22 浏览
0 Comments

在标题和文本字段之间没有呈现填充?

我想在我的标题和文本字段之间添加间距,因为它们当前太靠近了。我尝试在包含文本字段的行中添加填充,但没有移动。有什么想法可以实现这个?

0
0 Comments

在Flutter中,有时候在标题和文本框之间设置间距时,会出现间距无法渲染的问题。下面提供了一些解决方法:

1. 使用Container并设置高度:

Column(

children: [

Widget1(),

Container(height: 10), // 设置高度

Widget2(),

],

)

2. 使用Spacer:

Column(

children: [

Widget1(),

Spacer(), // 使用Spacer

Widget2(),

],

)

3. 使用Expanded:

Column(

children: [

Widget1(),

Expanded(child: SizedBox()), // 使用Expanded

Widget2(),

],

)

4. 使用mainAxisAlignment属性:

Column(

mainAxisAlignment: MainAxisAlignment.spaceAround, // 设置mainAxisAlignment

children: [

Widget1(),

Widget2(),

],

)

5. 使用Wrap:

Wrap(

direction: Axis.vertical, // 确保设置这个属性

spacing: 20, // 设置间距

children: [

Widget1(),

Widget2(),

],

)

以上是一些解决该问题的方法,对应的代码可以在以下链接中找到:[Space between Column's children in Flutter](https://stackoverflow.com/questions/52774921)

0
0 Comments

问题的原因是在代码中使用了SizedBox组件来设置头部和文本字段之间的间距,但是代码中写错了组件的名称,导致无法渲染出间距。解决方法是将代码中的"Sizedbox"改为"SizedBox",并且在height属性中设置所需的间距值。

修正后的代码如下:

Widget build(BuildContext context) {

return Scaffold(

backgroundColor: Colors.white,

body: Column(

crossAxisAlignment: CrossAxisAlignment.stretch,

children: [

Image.asset(

"assets/Login_Photo.jpg",

height: MediaQuery.of(context).size.height * 0.4,

width: MediaQuery.of(context).size.width,

fit: BoxFit.cover,

),

Padding(

padding: const EdgeInsets.all(50.0),

child: Column(

crossAxisAlignment: CrossAxisAlignment.start,

children: [

Text(

'Login',

style: TextStyle(

fontSize: 35,

fontFamily: 'Avenir',

fontWeight: FontWeight.w900,

),

),

SizedBox(height: 10), // 修改此处的组件名称

Row(

padding: const EdgeInsets.all(50.0),

children: [

Expanded(

child: TextField(

decoration: InputDecoration(hintText: "Email Address"),

),

),

],

),

],

),

),

],

),

);

}

感谢回答,但是这似乎不起作用...会抛出错误。我之前也尝试了你提供的方式,但是没有成功。还有其他的想法吗?

0
0 Comments

问题的原因是在文本框(TextField)和标题(Text)之间的padding没有显示出来。这是因为在代码中,padding是被应用在包含文本框和标题的Column组件上的,而不是直接应用在Row组件上。

要解决这个问题,可以将Row组件包裹在一个Container组件中,并在Container组件上应用padding。下面是修改后的代码:

Widget build(BuildContext context) {

return Scaffold(

body: Column(

crossAxisAlignment: CrossAxisAlignment.stretch,

children: [

Image.asset(

"assets/Login_Photo.jpg",

height: MediaQuery.of(context).size.height * 0.4,

width: MediaQuery.of(context).size.width,

fit: BoxFit.cover,

),

Padding(

padding: const EdgeInsets.all(50.0),

child: Column(

crossAxisAlignment: CrossAxisAlignment.start,

children: [

Text(

'Login',

style: TextStyle(

fontSize: 35,

fontFamily: 'Avenir',

fontWeight: FontWeight.w900,

),

),

Container(

margin: EdgeInsets.only(top: 10, left: 0, right: 0, bottom: 0),

child: Container(

padding: const EdgeInsets.all(50.0),

child: Row(

children: [

Expanded(

child: TextField(

decoration: InputDecoration(hintText: "Email Address"),

),

),

],

),

),

),

],

),

)

],

),

);

}

通过在Container组件中添加padding,我们成功地解决了padding没有显示的问题。现在,文本框和标题之间有了正确的padding。

0