x1c 0d1x我试图实现的设计显示在图像中,但我不能,因为差距显示在两个容器之间,当我试图圆的角落,
如何实现截图中的设计,我想让边角重叠,现在当我尝试圆角时,其他容器有白色?
[![return Scaffold(
body: Center(
child: Column(
children: \[
Expanded(
flex: 1,
child: Container(
// color: Colors.deepPurpleAccent,
),
),][1]][1]
Expanded(
flex: 3,
child: Container(
color: Colors.grey[200],
child: Column(
children: [
CupertinoButton(
onPressed: () {
},
child: Row(
children: [
Icon(Icons.person),
SizedBox(
width: 12,
),
Text('Profile'),
],
),
),
CupertinoButton(
onPressed: () {
// dbhandler.signOut();
},
child: Row(
children: [
Icon(Icons.info),
SizedBox(
width: 12,
),
Text('About app'),
],
),
),
CupertinoButton(
onPressed: () {
dbhandler.signOut();
},
child: Row(
children: [
Icon(Icons.logout),
SizedBox(
width: 12,
),
Text('Sign out'),
],
),
),
],
),
),
),
],
),
),);
1条答案
按热度按时间0sgqnhkj1#
之所以有白色,是因为
Column
以连续的垂直模式布局其子元素。它不能用于将一个子对象放置在另一个子对象之上(除非您应用了转换,但这违背了目的)。这个UI可以使用
LayoutBuilder
来获取constraints
,这样我们就可以正确地将我们的header,body和image正确地放置在Stack
中。输出量:
让我们定义一些大小。您可以根据应用程序的需要随意计算此值。首先,让我们为我们的头设置一个大小。
其次,让我们确定我们身体的卡的半径:
第三,让我们确定图像的大小:
接下来,我们将使用一个堆栈和我们确定的值以正确的顺序放置和绘制元素。我们还应用上面定义的值。
我们还希望外部部分具有边界半径和背景颜色: