Flutter——最详细(Positioned)使用教程

Positioned简介

创建一个小组件,用于控制 [Stack] 的子项的位置。

使用场景:

可以通过坐标的形式来摆放控件的位置,堆叠布局时可以使用;

属性作用
width宽度
height高度
top
bottom
left
right

注意事项:

1.如果设置了宽高,则left和right不能同时存在,top和bottom不能同时存在;
2.未设置宽高,则需要设置顶、底、左、右几个属性;
3.top、bottom、left、right 都设置为零时,则铺满全屏;

属性都为0时,则全屏铺满

          Positioned(
             top: 0,
             bottom: 0,
             left: 0,
             right: 0,
            child: Container(
              color: ColorsUtils.randomColor(),
              child: Text("1"),
            ),
          )

在这里插入图片描述

顶、左都为50的间距时

Stack(
        alignment: Alignment.topLeft,
        children: [
          Positioned(
            width: 150,
            height: 150,
            // top: 10,
            // bottom: 10,
            // left: 10,
            // right: 10,
            child: Container(
              color: ColorsUtils.randomColor(),
              child: Text("1"),
            ),
          ),
          Positioned(
            width: 150,
            height: 150,
            top: 50,
            // bottom: 10,
            left: 50,
            // right: 10,
            child: Container(
              color: ColorsUtils.randomColor(),
              child: Text("2"),
            ),
          ),
        ],
      )

在这里插入图片描述

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Flutter中的Positioned是一个小部件,用于在Stack中定位子部件。它允许您指定子部件在Stack中的位置和大小。Positioned小部件需要一个top、bottom、left或right属性来指定子部件相对于Stack的位置。此外,还可以使用width和height属性来指定子部件的大小。 ### 回答2: Flutter中的Positioned是一个用于定位子组件的小部件。它需要作为Stack小部件的子组件使用。 Positioned有两个主要属性:top、left、right和bottom,用于指定子组件在Stack中的位置。可以根据需要设置其中一个或多个属性。 将子组件放置在Stack的左上角,可以将top和left属性都设置为0。同样,将子组件放置在Stack的右下角,可以将底部和右侧属性都设置为0。 Positioned还有width和height属性,用于指定子组件在Stack中的大小。这些属性不是必需的,如果不设置它们,子组件将自动适应Stack的大小。 在使用Positioned时,还可以设置子组件的布局约束(constraints)。例如,可以使用ConstrainedBox包装子组件并设置最小和最大宽度和高度。 使用Positioned可以将子组件定位到Stack的任何位置,并根据需要设置大小。例如,在开发一个带有按钮的界面时,可以使用Positioned将按钮定位在屏幕的右下角,并设置适当的大小。 总之,Flutter中的Positioned是一个非常有用的小部件,可以帮助开发者灵活地定位和调整大小子组件,并创建复杂的布局效果。 ### 回答3: Flutter中的Positioned是一个用于定位子组件的Widget,它需要作为Stack的子组件来使用。 Positioned可以通过设置top、right、bottom和left属性来指定子组件相对于Stack的位置。这些属性的值可以是具体的像素值,也可以是相对于Stack大小的百分比。例如,设置top: 20和left: 30则表示子组件距离Stack的顶部和左边分别有20像素和30像素的距离。 当子组件被Positioned定位后,它将不受Stack剩余空间的约束,即使子组件的大小超出了Stack的范围,也可以完整显示出来。 此外,可以通过设置width和height属性来调整子组件的大小。同样地,这两个属性的值可以是具体的像素值,也可以是百分比值。例如,设置width: 100和height: 200则表示子组件的宽度为100像素,高度为200像素。 需要注意的是,使用Positioned来定位子组件需要将子组件放在Stack的子组件列表中,并且Positioned需要作为子组件的直接父组件。否则,Positioned将不起作用。 总而言之,Flutter中的Positioned是一个非常有用的组件,它可以让开发者更加灵活地定位和调整子组件的位置和大小,从而实现精确布局。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

怀君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值