只能用于Stack中,可以指定左上右下的距离对某个组件进行位置精确安放。

相关组件

Stack AnimatedPositioned PositionedDirectional

Positioned基本使用

  1. <br />【child】 : 组件 【Widget】<br />【top】 : 到父顶距离 【double】<br />【right】 : 到父右距离 【double】<br />【left】 : 到父左距离 【double】<br />【bottom】 : 到父底距离 【double】<br />![image.png](https://cdn.nlark.com/yuque/0/2020/png/326147/1589511630950-2545c21e-97a6-4e4a-9a13-ec0de8aba006.png#align=left&display=inline&height=133&margin=%5Bobject%20Object%5D&name=image.png&originHeight=133&originWidth=219&size=1733&status=done&style=none&width=219)
  1. import 'package:flutter/material.dart';
  2. class CustomPositioned extends StatelessWidget {
  3. @override
  4. Widget build(BuildContext context) {
  5. var yellowBox = Container(
  6. color: Colors.yellow,
  7. height: 100,
  8. width: 100,
  9. );
  10. var redBox = Container(
  11. color: Colors.red,
  12. height: 90,
  13. width: 90,
  14. );
  15. var greenBox = Container(
  16. color: Colors.green,
  17. height: 80,
  18. width: 80,
  19. );
  20. var cyanBox = Container(
  21. color: Colors.cyanAccent,
  22. height: 70,
  23. width: 70,
  24. );
  25. return Container(
  26. width: 200,
  27. height: 120,
  28. color: Colors.grey.withAlpha(33),
  29. child: Stack(
  30. children: <Widget>[
  31. yellowBox,
  32. redBox,
  33. Positioned(top: 20, left: 20, child: greenBox),
  34. Positioned(
  35. child: cyanBox,
  36. bottom: 10,
  37. right: 10,
  38. )
  39. ],
  40. ));
  41. }
  42. }