当前位置:   article > 正文

Flutter关于布局_flutter中的布局

flutter中的布局

简介:布局类组件都会包含一个或多个子组件,不同的布局类组件对子组件排列(layout)方式不同。

线性布局(Row和Column)

所谓线性布局,即指沿水平或垂直方向排列子组件。Flutter 中通过Row和Column来实现线性布局。Row和Column都继承自Flex,我们将在弹性布局一节中详细介绍Flex。

主轴与纵轴

如果布局是沿水平方向,那么主轴就是指水平方向,而纵轴即垂直方向;如果布局沿垂直方向,那么主轴就是指垂直方向,而纵轴就是水平方向。在线性布局中,有两个定义对齐方式的枚举类MainAxisAlignment和CrossAxisAlignment,分别代表主轴对齐和纵轴对齐。

Row

  1. // ignore_for_file: deprecated_member_use
  2. import 'package:flutter/material.dart';
  3. void main() {
  4. runApp(const MyApp());
  5. }
  6. class MyApp extends StatelessWidget {
  7. const MyApp({Key? key}) : super(key: key);
  8. @override
  9. Widget build(BuildContext context) {
  10. return MaterialApp(
  11. title: 'Flutter layout demo',
  12. home: Scaffold(
  13. appBar: AppBar(
  14. title: const Text('Flutter layout demo'),
  15. ),
  16. body: aaa),
  17. );
  18. }
  19. }
  20. Widget aaa = Column(
  21. //测试Row对齐方式,排除Column默认居中对齐的干扰
  22. crossAxisAlignment: CrossAxisAlignment.start,
  23. children: <Widget>[
  24. Row(
  25. mainAxisAlignment: MainAxisAlignment.center,
  26. children: const <Widget>[
  27. Text(" hello world "),
  28. Text(" I am Jack "),
  29. ],
  30. ),
  31. Row(
  32. mainAxisSize: MainAxisSize.min,
  33. mainAxisAlignment: MainAxisAlignment.center,
  34. children: const <Widget>[
  35. Text(" hello world "),
  36. Text(" I am Jack "),
  37. ],
  38. ),
  39. Row(
  40. mainAxisAlignment: MainAxisAlignment.end,
  41. textDirection: TextDirection.rtl,
  42. children: const <Widget>[
  43. Text(" hello world "),
  44. Text(" I am Jack "),
  45. ],
  46. ),
  47. Row(
  48. crossAxisAlignment: CrossAxisAlignment.start,
  49. verticalDirection: VerticalDirection.up,
  50. children: const <Widget>[
  51. Text(
  52. " hello world ",
  53. style: TextStyle(fontSize: 30.0),
  54. ),
  55. Text(" I am Jack "),
  56. ],
  57. ),
  58. ],
  59. );

效果展示

 

前提:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/82968
推荐阅读
  

闽ICP备14008679号